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 Dispatcherkullanarak 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, NUnittestlerimi ç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ü.