Sadece bu kodu yazmış:SynchronizationContext.Current neden Winforms uygulamasında null?
System.Threading.SynchronizationContext.Current.Post(
state => DoUpdateInUIThread((Abc)state),
abc);
ama
Sadece bu kodu yazmış:SynchronizationContext.Current neden Winforms uygulamasında null?
System.Threading.SynchronizationContext.Current.Post(
state => DoUpdateInUIThread((Abc)state),
abc);
ama
this explanation Bkz System.Threading.SynchronizationContext.Current boş.
SynchronizationContext.Current sadece
blog yazısı geçici bir çözüm önermektedir (aslında buna ihtiyacı yoktur, sadece iplik olan) ana iş parçacığı ayarlanır. Çalışmak için
. UI iş parçacığı olarak
private SynchronizationContext synchronizationContext;
sınıfınızın (ana iş parçacığı) işçi iş parçacığı
synchronizationContext.Post(
state => DoUpdateInUIThread((Abc)state),
abc);
SenkronlaştırmaContext, çalışan iş parçacığı içinde nasıl oluşturulur veya bu iletime geçirilir? – Tim
Diyelim ki formunuzda bir 'BackgroundWorker 'kullanıyorsunuz. Kurucunuzda 'SynchronizationContext.Current' öğesini kaydederseniz veya etkinliği bir sınıf düzeyi değişkeni olarak yüklerseniz, 'RunWorkerCompleted' işleyicisi erişilebilir olacaktır. Alternatif olarak, işi bir sunum yapan gibi başka bir sınıfta yapıyorsanız, kullanıcı arabiriminde sunumu oluşturabilir ve yapıcıdaki bağlamı kapatabilirsiniz. –
Güzel geçici çözüm olarak
yılında
! – psulek