Ben kullanıyorum Görevler benim ViewModel sunucu aramaları çalıştıran uzun çalışmasına ve sonuçlar taraftaki geri sıralıyor edilir Dispatcher
kullanarak TaskScheduler.FromSyncronizationContext()
. Örneğin:
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
Uygulamayı çalıştırdığımda bu iyi çalışıyor. Ancak, NUnit
testlerimi çalıştırdığımda Resharper
, çağrı üzerine şu hata mesajını alıyorum FromCurrentSynchronizationContext
:
Geçerli SynchronizationContext, TaskScheduler olarak kullanılamaz.
Sanırım bunun nedeni testlerin çalışan iş parçacıkları üzerinde çalıştırılması. Testlerin ana iş parçacığında çalıştırıldığından nasıl emin olabilirim? Başka herhangi bir öneriye açığız.
TaskScheduler.FromCurrentSynchronizationContext()
bir lambda kullanıyordum ve yürütme başka bir iş parçacığına ertelendi. bağlamı lambda dışında almak sorunu çözdü.