猿问

System.Windows.Threading.Dispatcher和WinForms?

是否System.Windows.Threading.Dispatcher可以在WinForms应用程序的UI线程上工作?


如果是,为什么?它来自WindowsBase.dll,它似乎是一个WPF组件。


如果没有,如何将工作单元重新调用到UI线程上?我已经找到了Control.BeginInvoke(),但是创建一个仅引用原始线程的控件似乎很笨拙。


侃侃尔雅
浏览 1311回答 3
3回答

婷婷同学_

Dispatcher是WPF组件,而不是WinForms组件。如果要在UI线程上分派工作项,则必须使用已经发现的Control.BeginInvoke,或对线程之间的ResetEvents / WaitObjects做出反应。通常,除非是UI工作(即更新控件的内容等),否则在UI线程上调用工作项是一件坏事,在这种情况下,Control.BeginInvoke()就足够了。
随时随地看视频慕课网APP
我要回答