Estoy usando Tasks para ejecutar llamadas de servidor de larga duración en mi ViewModel y los resultados se calculan de nuevo al Dispatcher
usar TaskScheduler.FromSyncronizationContext()
. Por ejemplo:
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
Esto funciona bien cuando ejecuto la aplicación. Pero cuando ejecuto mis NUnit
pruebas Resharper
, aparece el mensaje de error en la llamada a FromCurrentSynchronizationContext
:
El SynchronizationContext actual no se puede utilizar como TaskScheduler.
Supongo que esto se debe a que las pruebas se ejecutan en subprocesos de trabajo. ¿Cómo puedo asegurarme de que las pruebas se ejecuten en el hilo principal? Cualquier otra sugerencia es bienvenida.
TaskScheduler.FromCurrentSynchronizationContext()
dentro de una lambda y la ejecución se aplazó a otro hilo. obtener el contexto fuera de lambda solucionó el problema.