为什么我的Winforms应用程序中的SynchronizationContext.Current为null?

我刚写了这段代码:

System.Threading.SynchronizationContext.Current.Post( state => DoUpdateInUIThread((Abc)state), abc); 

但System.Threading.SynchronizationContext.Current为null

看到这个解释 。

SynchronizationContext.Current只在主线程中设置(这是你实际上不需要它的唯一线程)

博客文章提出了一种解决方法。

让它工作。

在你的class上

 private SynchronizationContext synchronizationContext; 

UI线程 (主线程)

 synchronizationContext = System.Threading.SynchronizationContext.Current; 

在工作线程中

 synchronizationContext.Post( state => DoUpdateInUIThread((Abc)state), abc);