一个winform进程里面可不可以有两个UI线程

时间:2022-06-11 08:36:34
有如下两个问题,请高手帮忙解答一下,本人感激不尽。

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

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

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

13 个解决方案

#1


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

2.其他4线程到底干嘛,不需要去研究。就像用WIndows上网的人不需要去研究里面每个子进程的功能一样。如果你想专研,估计得去找找诸如C#内部探秘之类的书籍了。

#2


没有主线程和子线程之分,而有主进程和线程之分...
一个主进程包可以含多个进程.当然界面就是一个线程,另外开启的线程输入主进程,但是线程和界面线程之间平级,没有从属关系

#3


可以,线程是否关闭
线程中操作控件invoke
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx

#4


Windows UI机制本来就是多线程的,你不会不知道吧...换句话说,每一个你能看到的窗体都不止一个线程...要不一个线程怎么处理Windows消息循环啊,怎么响应你那些用户事件啊,怎么能让你那些控件各干各的事儿啊...

这是Windows操作系统基础,得学啊...

#5


感谢各位的回答,

有没有人知道其它4个线程是负责干什么的,或者有什么资料链接给我推荐下,我对这个问题十分感兴趣,万分感激!

#6


推荐一个工具Process Explorer,自己琢磨着用吧

#7


线程是可以有很多很多很多。。

但是, UI 线程只有一个,因为只能有一个消息泵,不然就乱套了。。

#8


同意7楼的

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

#9


1 主线程 N个 工作线程

#10


该回复于2011-02-27 09:27:38被版主删除

#11


只能有一个UI线程,回答完毕!

#12


不可以的,只有一个

#13


引用 7 楼 cgabriel 的回复:
线程是可以有很多很多很多。。

但是, UI 线程只有一个,因为只能有一个消息泵,不然就乱套了。。


我一直也是这么认为的,但不知创建了两个ui线程会是什么情况和后果?

#1


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

2.其他4线程到底干嘛,不需要去研究。就像用WIndows上网的人不需要去研究里面每个子进程的功能一样。如果你想专研,估计得去找找诸如C#内部探秘之类的书籍了。

#2


没有主线程和子线程之分,而有主进程和线程之分...
一个主进程包可以含多个进程.当然界面就是一个线程,另外开启的线程输入主进程,但是线程和界面线程之间平级,没有从属关系

#3


可以,线程是否关闭
线程中操作控件invoke
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx

#4


Windows UI机制本来就是多线程的,你不会不知道吧...换句话说,每一个你能看到的窗体都不止一个线程...要不一个线程怎么处理Windows消息循环啊,怎么响应你那些用户事件啊,怎么能让你那些控件各干各的事儿啊...

这是Windows操作系统基础,得学啊...

#5


感谢各位的回答,

有没有人知道其它4个线程是负责干什么的,或者有什么资料链接给我推荐下,我对这个问题十分感兴趣,万分感激!

#6


推荐一个工具Process Explorer,自己琢磨着用吧

#7


线程是可以有很多很多很多。。

但是, UI 线程只有一个,因为只能有一个消息泵,不然就乱套了。。

#8


同意7楼的

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

#9


1 主线程 N个 工作线程

#10


该回复于2011-02-27 09:27:38被版主删除

#11


只能有一个UI线程,回答完毕!

#12


不可以的,只有一个

#13


引用 7 楼 cgabriel 的回复:
线程是可以有很多很多很多。。

但是, UI 线程只有一个,因为只能有一个消息泵,不然就乱套了。。


我一直也是这么认为的,但不知创建了两个ui线程会是什么情况和后果?