WindowsFormsSynchronization已发布回调的上下文执行顺序



我使用WindowsFormsSynchronizationContext在主UI线程中调度回调的执行(应用程序是WinForms)。调度回调代码在工作线程中运行,它不应该与回调同步,所以我使用WindowsFormsSynchronizationContext.Post()方法。但是回调必须在主 UI 线程中执行,以便将它们发布到WindowsFormsSynchronizationContext中。

有谁知道WindowsFormsSynchronizationContext是否按发布顺序执行发布的回调? 我没有在Microsoft文档中找到此信息。

是的,顺序保持不变。

WindowsFormSynchronizationContext.Post调用Control.BeginInvoke调用MarshaledInvoke调用PostMessage

将保留发布到窗口的消息之间的顺序(但发送的消息优先于发布的消息)。

最新更新