已发布回调的 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(但发送的消息优先于发布的消息)。
我使用 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(但发送的消息优先于发布的消息)。