日期:2014-05-20  浏览次数:20837 次

一个winform进程里面可不可以有两个UI线程
有如下两个问题,请高手帮忙解答一下,本人感激不尽。

1,一个winform进程里面可不可以有两个UI线程,如果创建了多个UI线程,会有什么问题?

2,创建一个winform程序,然后运行它,什么操作也不执行,打开任务管理器,发现该进程的线程数是5,除了UI线程外,其它4个线程是干什么的,有什么作用

请高手解答一下,成分感激!

------解决方案--------------------
1.可以。具体问题,请参阅C#教程中的多线程章节。

2.其他4线程到底干嘛,不需要去研究。就像用WIndows上网的人不需要去研究里面每个子进程的功能一样。如果你想专研,估计得去找找诸如C#内部探秘之类的书籍了。
------解决方案--------------------
没有主线程和子线程之分,而有主进程和线程之分...
一个主进程包可以含多个进程.当然界面就是一个线程,另外开启的线程输入主进程,但是线程和界面线程之间平级,没有从属关系
------解决方案--------------------
可以,线程是否关闭
线程中操作控件invoke
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
------解决方案--------------------
Windows UI机制本来就是多线程的,你不会不知道吧...换句话说,每一个你能看到的窗体都不止一个线程...要不一个线程怎么处理Windows消息循环啊,怎么响应你那些用户事件啊,怎么能让你那些控件各干各的事儿啊...

这是Windows操作系统基础,得学啊...
------解决方案--------------------
推荐一个工具Process Explorer,自己琢磨着用吧
------解决方案--------------------
线程是可以有很多很多很多。。

但是, UI 线程只有一个,因为只能有一个消息泵,不然就乱套了。。
------解决方案--------------------
同意7楼的

一个winform系统,只能有一个ui线程,但是可以有很多隐藏的线程(处理其他业务)
ui线程是为了保证winform系统运行过程中不会出现线程争抢ui资源的现象,,也就是只能有一个消息泵去控制ui呈现,否则,就乱了
------解决方案--------------------
1 主线程 N个 工作线程