WinForms 中的每个表单都有自己的线程吗?
Posted
技术标签:
【中文标题】WinForms 中的每个表单都有自己的线程吗?【英文标题】:Does each form in WinForms have its own thread? 【发布时间】:2014-07-10 14:44:55 【问题描述】:使用 WinForms 时,每个表单都有自己的线程吗?还是他们都有一个共同点?
我想问题/答案也适用于 Win32 编程,因为(据我了解),WinForms 只是 Win32 的抽象,但我不确定。如果是,我会这样标记问题。
【问题讨论】:
【参考方案1】:不,通常同一进程的所有形式都在同一线程(称为 UI 线程)中运行。可以在不同的线程中显示表单,但这种情况并不常见,可能会导致各种问题...
更准确地说:表单并不真正“拥有”线程。它有一个消息泵,基本上只是一个处理发送到窗口的消息的循环。该消息泵在一个线程中运行。
【讨论】:
谢谢。这对于 Win32 编程是正确的,对吧? @TimCoker,是的,绝对是。正如您在问题中提到的,WinForms 只是 Win32 的托管包装器。以上是关于WinForms 中的每个表单都有自己的线程吗?的主要内容,如果未能解决你的问题,请参考以下文章
WinForms 中的托管线程如何使用“this->”在回调函数中访问表单元素(更改值等)