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