好像使用 用户界面线程 没什么好处,同样如果主线程(比如对话框的某个正在操作的成员阻塞)或 UI线程阻塞(对话框的某个正在操作的成员阻塞)也会影响到其他线程不能执行,只有到不在阻塞才能恢复。我查了资料好像是关于线程间对话框调度原因。既然是这样,那还用UI线程干嘛,工作者线程同样可以处理这样类型的问题(好像)请高手门帮我揭开心底的谜团,迷糊主线程
CXXXDlg OnXXXX()
{
//耗时,阻塞
}
或
UI线程
CUIDlg OnXXXX()
{
//耗时,阻塞
}
CXXXDlg OnXXXX()
{
//耗时,阻塞
}
或
UI线程
CUIDlg OnXXXX()
{
//耗时,阻塞
}
但UI线程关于到界面(控件)阻塞,其他线程也阻塞了,根本无法继续走下去,如我举得例子
工作者线程一般没有消息队列,可以自己强制加入,
UI线程有窗口,自己有消息队列。
我想分开了说只是为了让有窗口和无窗口的界面达到一些规范和共性。
长时间的任务的,如果有这样的操作也创建一个工作Thread去完成
UI线程与普通工作线程的最大差异就在于他们的同步处理通常使用 SendMessage 和 PostMessage 来完成,而非通常的互斥和同步内核对象
从逻辑上来说,UI线程和普通线程并没有本质差异