SORU
11 Mayıs 2011, ÇARŞAMBA


Nasıl bir görev (VUK) STA bir çalışan iş parçacığı oluşturmak için?

İplik kullanarak oldukça basittir

 Thread thread = new Thread(MethodWhichRequiresSTA);
 thread.SetApartmentState(ApartmentState.STA);  

Nasıl bir WPF uygulama aynı kullanarak Görevleri yerine getirmek için? Burada bazı kod:

Task.Factory.StartNew
  (
    () => 
    {return "some Text";}
  )
   .ContinueWith(r => AddControlsToGrid(r.Result));  

Bir InvalidOperationException alıyorum

İş parçasıyla birçok UI bileşenleri bu gerekli çünkü STA olmalıdır.

CEVAP
11 Mayıs 2011, ÇARŞAMBA


TaskScheduler.FromCurrentSynchronizationContext Method TaskScheduler geçerli eşitleme için bir bağlam WPF uygulaması koşarken WPF memuru olan) almak için kullanabilirsiniz.

Sonra bir TaskScheduler kabul eden ContinueWith aşırı yük:

var scheduler = TaskScheduler.FromCurrentSynchronizationContext();

Task.Factory.StartNew(...)
            .ContinueWith(r => AddControlsToGrid(r.Result), scheduler);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008
  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009