现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

界面程序在处理多线程时的注意事项

2015-04-17 20:27 工业·编程 ⁄ 共 504字 ⁄ 字号 暂无评论

在开发一些视频下载软件的界面时,在UI线程之外要创建多个工作线程,比如加载信息,下载视频,要注意一些问题:

1、UI线程创建的相关界面,控件只能UI线程自己调用控制,工作线程不能调用。

比如在文本框内得到视频地址,传到工作线程中,工作线程通过url地址分析出视频的相关信息,再把信息设置到界面中

这时可以把工作线程分析出现的相关信息,通过事件发送给UI线程,UI线程把接收到的信息,自己设置界面控件,就能实现只是UI线程调用控件

2、在UI线程中操作工作线程时,不要使用全局变量,或者说不要UI线程和工作线程共用一个变量

线程是并发进行的,在没有通过互斥、信息号量等其他方法控制线程的时候,UI线程和工作线程是同时进行的,不能通过设置某一变量值来控制线程的运行

一般可以在创建线程时,通过传递指针类型数据,当要停止某个工作线程时,在UI线程中通过改变数据,就能改变指针地址,改变工作线程的数据。而工作线程接收到数据改变的消息时,会执行相应的操作,但并不能保证立即响应,可以通过一定的延迟操作使工作线程完全终止,再执行UI线程的操作

3、多个工作线程同时工作时,要保证同一时刻只有一个线程访问某一数据

可以通过互斥加锁控制访问

给我留言

留言无头像?