2009-06-03 28 views
5

Merhaba ben bir .Net uygulaması geliştiriyorum dan meydana ve aşağıdaki elde etmek istiyorum) bir programa dayalı bir iş parçacığını teşvik eder. Sorun, ikincil iş parçacığından (WorkerThread) kullanıcı arabirimine (Windows formuna) erişemememdir, hata, bileşenin oluşturulamayan bir iş parçacığından erişilememesi gibi bir şey söylüyor.başka bir iş parçacığı (Net)

Bunu başarmanın bir yolu var mı?

Teşekkürler!

OnTimerElapsed(object sender, ElapsedEventArgs e) 
{ 
    args = GetArgs(); 
    this.BeginInvoke(() => DoWork(args)); 
    // 'this' refers to form here. 
    // You can also use BeginInvoke on a user control for updating it. 
} 

Bu çalışacaktır:

cevap

10
formObject.Invoke(delegate { 
     // action to perform on UI thread 
}); 
+2

Ve bu çalışmanın temel olarak, zamana sahip olduğunda onu yürütecek olan UI iş parçacığı için bir iş kuyruğuna eklendiğini unutmayın. –

2

senin işçi yöntemi (bir iş parçasında yürütüldüğü o) Zamanlayıcı Geçen olay yapmalı kolları

DoWork(args) 
{ 
    ... 
    UpdateUI(); 
} 

yöntem olduğunu varsayalım DoWork ayrı bir iş parçacığı ve DoWork UI güncelleme yeteneğine sahip olacak.

İlgili konular