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

  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • MisterBrightside

    MisterBright

    24 Mart 2006
  • PremiumBeat.com - Royalty Free Music

    PremiumBeat.

    16 Kasım 2008