私はTasksを使用して、ViewModelで長時間実行されるサーバー呼び出しを実行しています。結果はTaskScheduler.FromSyncronizationContext()
を使用してDispatcher
にマーシャルされます。例:現在のSynchronizationContextはTaskSchedulerとして使用できません
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
これはアプリケーションを実行するとうまく動作します。現在のSynchronizationContextがTaskSchedulerとして使用することはできません
:私は
Resharper
に私NUnit
テストを実行するときしかし、私はとFromCurrentSynchronizationContext
への呼び出しでエラーメッセージが表示されます。
これは、テストがワーカースレッドで実行されるためです。テストがメインスレッドで実行されるようにするにはどうすればよいですか?他の提案は歓迎されます。
が働いて、ありがとう! – anivas
MSTestの場合:ClassInitializeAttributeでマークされたメソッドに上記のコードを置きます。 – SACO
おしゃれなこと... –