非UI线程可以显示在屏幕上吗?

时间:2011-05-19 18:17:49

标签: .net multithreading ui-thread

只有UI线程能够显示在屏幕上,还是其他线程也可以这样做?

3 个答案:

答案 0 :(得分:7)

不,您只能直接从UI线程访问UI,但您可以封送其他线程的结果,例如使用Control.Invoke或control.BegineInvoke / EndInvoke

检查this

答案 1 :(得分:1)

您可以使用所有GUI控件的BeginInvoke()成员从后台线程更改其属性的值 如果您使用的是背景工作者,则可以使用ReportProgress事件,这更容易。

答案 2 :(得分:0)

还取决于您使用WinForms还是WPF,在Winforms中使用Control.Invoke,在WPF中使用Dispatcher类。 WPF具有更复杂的线程UI调度程序