SORU
23 Kasım 2011, ÇARŞAMBA


Geçerli SynchronizationContext bir TaskScheduler olarak kullanılamaz

Tasks benim uzun ViewModel sunucu çağrıları çalışan çalıştırmak için kullanıyorum ve sonuçları Dispatcher TaskScheduler.FromSyncronizationContext() kullanarak sıraya. Örneğin:

var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
            .ContinueWith(x => this.Message = "Completed"
                          , context);

Bu uygulama öldürdüğümde gayet iyi çalışıyor. Ama Resharper NUnit benim test FromCurrentSynchronizationContext: çağrı üzerinde hata mesajı alıyorum

Geçerli SynchronizationContext bir TaskScheduler olarak kullanılamaz.

Bu testleri çalışan iş parçacığı üzerinde çalıştırmak için sanırım. Nasıl testler ana iş parçacığı üzerinde çalışır temin edebilirim ? Başka önerileriniz bekliyoruz.

CEVAP
23 Kasım 2011, ÇARŞAMBA


Bir SynchronizationContext sağlamak gerekir. Bu nasıl ele aldığım

[SetUp]
public void TestSetUp()
{
  SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJPixcell

    DJPixcell

    20 NİSAN 2007
  • filmurfreakur

    filmurfreaku

    29 Mart 2007
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006