2012-08-05 165 views
0

假設有多個線程訪問的集合。其中一個線程需要知道給定的項目已被另一個線程添加。任何人都可以提供解決方案嗎?謝謝。多線程訪問集合

+0

你可以澄清一個線程需要知道某個特定項目已被另一個線程添加 - 你只需要知道何時添加到集合中(如可觀察的集合),還是你真的需要知道它是否來自不同的線程? – vcsjones 2012-08-05 17:06:06

+0

我知道一個給定的項目被其他線程添加到集合後,我需要做些事情。就像你的意思像一個可觀察的集合一樣。我們可以說一個閱讀線程觀察集合和許多編寫器線程來更改集合。謝謝。 – 2012-08-05 17:13:50

+0

該問題陳述「特定項目」。請糾正這個問題。 – Paparazzi 2012-08-05 17:39:25

回答

1

開始用一個線程安全的集合

Thread-Safe Collections

至於知道什麼的線程加入特定的項目,我不認爲一個項目跟蹤胎面。我想你可以添加一個Property TheadName並讓線程輸入該值。

問題狀態「已添加特定項目」。然後在評論中,OP推斷任何項目。

.NET沒有線程安全的ObservableCollection。有一些codeplex或可能反思你設計。 ConcurrentQueue可能是一個選項。

+0

請閱讀我的問題。因爲我編輯它。謝謝 – 2012-08-05 17:50:00

+0

爲了清晰起見,我認爲你的意思是任何項目。你確定你不能用隊列來做到這一點嗎?當隊列進程和項目可以將它添加到ObservableCollection。 – Paparazzi 2012-08-05 18:00:21

+0

謝謝。我需要時間去嘗試。 – 2012-08-05 18:02:20