내가 사용하고 작업을 내 뷰 모델에서 서버 호출을 실행 긴 실행하고 결과를 다시 정렬 화되어 Dispatcher
사용하여 TaskScheduler.FromSyncronizationContext()
. 예를 들면 :
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
이것은 응용 프로그램을 실행할 때 잘 작동합니다. 하지만 NUnit
테스트를 실행할 때 다음 과 같은 Resharper
호출에 오류 메시지가 표시 FromCurrentSynchronizationContext
됩니다.
현재 SynchronizationContext를 TaskScheduler로 사용할 수 없습니다.
테스트가 작업자 스레드에서 실행되기 때문이라고 생각합니다. 테스트가 메인 스레드에서 실행되는지 어떻게 확인할 수 있습니까? 다른 제안은 환영합니다.
TaskScheduler.FromCurrentSynchronizationContext()
에는 람다 내부 에서 사용 하고 있었고 실행이 다른 스레드로 연기되었습니다. 람다 외부의 컨텍스트를 가져 오면 문제가 해결되었습니다.