假設有像由多線程訪問的Hashtable.Synchronized()創建的Hashtable。並且鍵值對是Hashtable中的Guid和Object。 其中一個線程需要輪詢該Hashtable,直到另一個線程將特定的Guid鍵添加到此列表中。多線程訪問.net中的一個集合
以下是我的代碼。
public Hashtable syncHt = new Hashtable();
public void Init()
{
Hashtable ht = new Hashtable();
syncHt = Hashtable.Synchronized(ht);
}
在應用程序初始化中,我將調用init();
而在其中一個線程中,我將調用isExist來查找由某個其他線程添加的特定Guid。
public bool isExist(Guid sId)
{
while (true)
{
if (syncHt.ContainsKey(sId))
{
return true;
}
}
}
我想知道這個循環是否可以結束。我怎麼能知道輪詢過程中改變的哈希表?謝謝
不知道有沒有這樣的事情,但你可以創建自己的類,並使用SychronizationAttribute HTTP:// msdn.microsoft.com/en-us/library/system.runtime.remoting.contexts.synchronizationattribute(v=vs.100).aspx – 2012-08-05 15:20:01
據我所知,在.NET中沒有直接的平等 - 但是'聯鎖類提供了很多相同的功能,如交換等。 – vcsjones 2012-08-05 15:24:43
嗨.all。謝謝你的意見 。我編輯了我的問題。 – 2012-08-05 15:39:33