首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

界面线程和工作线程解决方案

2012-01-22 
界面线程和工作线程书上说,在工作线程里不要做跟界面有关的东西,但我老师不明白,怎么样的行为称得上是和界

界面线程和工作线程
书上说,在工作线程里不要做跟界面有关的东西,但我老师不明白,怎么样的行为称得上是和界面有关

假如,一个工作线程用于进行数据传输,那么如果需要传输的数据时需要从控件中读取,那么这个从控件读取数据的动作,算不算是和界面有关?

[解决办法]
这个当然和界面有关了。不过为了实现你所说的功能,你可以尝试使用线程间通信来实现你所要的功能。
[解决办法]
算,和界面有关就是对涉及到界面的任何操作
[解决办法]
所谓在工作线程里不要做跟界面有关的东西,好像是说不要在工作线程里更新界面,如Enable...、
Set...之类
[解决办法]
界面线程中传输数据,会造成界面假死。故此一定要这样做,就算没造成
假死也不要这样做。

[解决办法]

探讨

引用:
算,和界面有关就是对涉及到界面的任何操作


为什么这样也算,按我现在的理解,读取数据并没有影响他的图形显示方面(例如多一行少一行之类的),
难道,通过控件变量也不行?

[解决办法]
探讨
书上说,在工作线程里不要做跟界面有关的东西,但我老师不明白,怎么样的行为称得上是和界面有关

假如,一个工作线程用于进行数据传输,那么如果需要传输的数据时需要从控件中读取,那么这个从控件读取数据的动作,算不算是和界面有关?

[解决办法]
一个工作线程用于进行数据传输,那么如果需要传输的数据时需要从控件中读取,那么这个从控件读取数据的动作,算不算是和界面有关?

算和界面有关,毕竟你牵扯到了界面:)
但是你当然也可以在这个线程里面做!(当然这也不意味这个选择是好的)

其实对系统来说线程就是线程,没有说那个线程必须是工作线程,那个必须是界面线程!如果非要具体的分出工作线程,界面线程,其实界面线程就是在工作线程的基础上多增加了一些系统资源,来负责与用户交互.

[解决办法]
探讨

但问题是,为什么有的操作,如在线程中更新进度条,就可以正常工作。

例如下面的代码
C/C++ code

UINT CSendFileDlg::SendFileThread( LPVOID lparam )
{
CSendFileDlg *pthisDlg = (CSendFileDlg*)lparam;

FILEINFO FileInfo;
……

[解决办法]
你b处是干什么用的?

不是从list中读取文件路径,并发送文件的??

[解决办法]
工作线程就是说不会影响界面的线程,一般是一些计算.
界面线程,就是会更新界面的,主线程就是典型的界面线程.
当然这只是人为的区分而已.

热点排行