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
  • LG Mobile Global

    LG Mobile Gl

    2 EYLÜL 2010
  • VideoGamePervert

    VideoGamePer

    30 AĞUSTOS 2008