Estoy usando Tasks para ejecutar llamadas de servidor de larga duración en mi ViewModel y los resultados se calculan de nuevo al Dispatcherusar 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 NUnitpruebas 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.