21

私はちょうどこのコードを書いた:

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

しかし、System.Threading.SynchronizationContext.Current は null です

4

2 に答える 2

20

それを機能させるために。

あなたのクラスで

private SynchronizationContext synchronizationContext;

UI スレッド(メインスレッド) 内

synchronizationContext = System.Threading.SynchronizationContext.Current;

ワーカースレッドで

synchronizationContext.Post(    
   state => DoUpdateInUIThread((Abc)state),     
   abc);
于 2009-11-10T17:11:09.760 に答える
16

この説明を参照してください。

SynchronizationContext.Current は、メイン スレッドでのみ設定されます (これは、実際には必要のない唯一のスレッドです)。

ブログ投稿では、回避策を提案しています。

于 2009-11-10T17:10:05.620 に答える