c# winforms multithreading synchronizationcontext

c# - ¿Por qué es SynchronizationContext.Current nulo en mi aplicación Winforms?



multithreading (2)

Acabo de escribir este código:

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

pero System.Threading.SynchronizationContext.Current es nulo


Para que funcione.

En tu clase

private SynchronizationContext synchronizationContext;

En el hilo de la interfaz de usuario (hilo principal)

synchronizationContext = System.Threading.SynchronizationContext.Current;

En el hilo del trabajador

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


Ver esta explicacion

SynchronizationContext.Current solo se establece en el hilo principal (que es el único hilo en el que realmente no lo necesita)

La entrada del blog propone una solución.