2010-08-20 61 views
0

我有一些異步操作正在我的應用程序的主線程上執行。我需要一個工作線程定期輪詢主線程並檢查主線程上的值。如何從工作線程檢查主線程的屬性值?

我該怎麼做?我可以在主線程正在監聽的工作線程上引發事件嗎?雙向通信。

謝謝..

回答

1

另一種更「手動」的方式來完成你在這裏要求的東西。有主線程檢查感興趣的值,然後發送一個復位事件的工作線程:

  1. 看的ManualResetEvent(和的AutoResetEvent,根據您的需要)在線程庫。這些是非常簡單的在工作者線程和主線程之間傳遞信號的簡單機制。

  2. 在主線程上創建一個定時器/回調函數,在合理的時間段內檢查該值。如果將期望值評估爲true,則將發送信號的事件設置爲工作線程。

0

如果您正在使用WPF,你可以有工作線程調用WPF窗口的Dispatcher.Invoke方法來獲得數據的主線程上。如果您使用的是WinForms,表單本身有一個「Invoke」方法,您可以檢查「InvokeRequired」方法以確定是否應該調用Invoke方法。

相關問題