2010-11-01 80 views
1

在主線程中,我打開一個新線程,獲取用戶新消息的數量(大約需要5秒),第二個線程應該在某個地方保存這個數字。如何在線程之間共享數據?

在主線程中,我應該檢查「某處」,如果值存在,我將它顯示在頁面上。

我在哪裏可以保存第二個線程的值以便從主要線程中讀取值?這個值是每個用戶唯一的,所以我不能使用靜態字段。

謝謝您的提前!

回答

1

您可以使用靜態字典與用戶ID作爲鍵和結果作爲值。用鎖來保護字典訪問。主線程讀取值後,可以從字典中清除它。

1

當多個線程可以讀/寫數據時,使用臨界區來保護對某些數據的訪問。使用單例實例來存儲數據,全局變量,註冊表模式或其他。

0

我這樣做的方式,我有一個向量od「ThreadData」元素。 每個啓動的線程在啓動時都會獲取該元素,並且可以更新該數據(由互斥鎖保護)。 主線程簡單地檢查元素中的一些標誌(ThreadState - Running,Idle,Stopped等)並讀取線程更新的其他數據。