複数のスレッドからアクセスされる Hashtable.Synchronized() によって作成された Hashtable のようなものがあるとします。キーと値のペアは Hashtable の Guid と Object です。スレッドの 1 つは、特定の Guid キーが別のスレッドによってこのリストに追加されるまで、この Hashtable をポーリングする必要があります。
以下は私のコードです。
public Hashtable syncHt = new Hashtable();
public void Init()
{
Hashtable ht = new Hashtable();
syncHt = Hashtable.Synchronized(ht);
}
アプリケーションの初期化では、init(); を呼び出します。
そして、スレッドの 1 つで、 isExist を呼び出して、他のスレッドによって追加された特定の Guid を見つけます。
public bool isExist(Guid sId)
{
while (true)
{
if (syncHt.ContainsKey(sId))
{
return true;
}
}
}
このループを終わらせることができるかどうか疑問に思っていました。ポーリング中にハッシュテーブルが変更されたことをどのように知ることができますか?ありがとう