假设有由 Hashtable.Synchronized() 创建的类似 Hashtable 的东西,它可以被多个线程访问。键值对是 Hashtable 中的 Guid 和 Object 。一个线程需要轮询这个 Hashtable,直到另一个线程将特定的 Guid 键添加到这个列表中。
下面是我的代码。
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;
}
}
}
我想知道这个循环是否可以结束。我怎么知道在轮询期间哈希表发生了变化?谢谢