在任务中运行的代码(计划在 UI 线程的同步上下文中运行)与直接在消息泵上运行的代码之间有什么区别。
我注意到许多行为差异。
不确定“直接在消息泵上运行的代码”是什么意思,但是查看参考源,您基本上可以看到
WindowsFormsSynchronizationContext.Send
= Control.Invoke
WindowsFormsSynchronizationContext.Post
= Control.BeginInvoke
DispatcherSynchronizationContext.Send
= Dispatcher.Invoke
DispatcherSynchronizationContext.Post
=Dispatcher.BeginInvoke
因此,当任务调度程序在 UI 线程上调度任务时,它应该等同于您这样做