Error: Object reference not set to an instance of an object.
¿Por qué SynchronizationContext.Current es nulo?
El algoritmo siguiente funciona. Lo probé, luego eliminé el proyecto Winform
en otro directorio y SynchronizationContext.Current
es null
. ¿Por qué?
SynchronizationContext uiCtx = SynchronizationContext.Current;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
int[] makeSelfMoves = new int[4];
lock (replay)
{
// count should be more than 2
foreach (KeyValuePair<int, int[]> item in replay)
{
makeSelfMoves = replay[item.Key];
codeFile.ExecuteAll(makeSelfMoves[0],
makeSelfMoves[1], makeSelfMoves[2], makeSelfMoves[3]);
// i get the error here. uictx is null
uiCtx.Post(o =>
{
PrintPieces(codeFile.PieceState());
}, null);
System.Threading.Thread.Sleep(1000);
}
}
}
¿En qué contexto * * está ejecutando este código entonces? Una aplicación de consola? –
aplicación winform –
¿Y qué está creando una instancia de este objeto y cuándo? (Parece que está capturando el contexto de sincronización * en la construcción * después de todo.) –