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

  • Bach Vlogs

    Bach Vlogs

    18 HAZİRAN 2011
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010