已发布回调的 WindowsFormsSynchronizationContext 执行顺序

WindowsFormsSynchronizationContext execution order of posted callbacks

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

中发布它们

有人知道 WindowsFormsSynchronizationContext 是否按发布顺序执行发布的回调吗? 我没有在 Microsoft Docs.

中找到此信息

是的,顺序被保留。

WindowsFormSynchronizationContext.Post calls Control.BeginInvoke which calls MarshaledInvoke which calls PostMessage.

The order among messages which are posted to a window is preserved(但发送的消息优先于发布的消息)。