我使用WindowsFormsSynchronizationContext
在主UI线程中调度回调的执行(应用程序是WinForms)。调度回调代码在工作线程中运行,它不应该与回调同步,所以我使用WindowsFormsSynchronizationContext.Post()
方法。但是回调必须在主 UI 线程中执行,以便将它们发布到WindowsFormsSynchronizationContext
中。
有谁知道WindowsFormsSynchronizationContext
是否按发布顺序执行发布的回调? 我没有在Microsoft文档中找到此信息。
是的,顺序保持不变。
WindowsFormSynchronizationContext.Post
调用Control.BeginInvoke
调用MarshaledInvoke
调用PostMessage
。
将保留发布到窗口的消息之间的顺序(但发送的消息优先于发布的消息)。