假设有像由多线程访问的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