これはやり過ぎで、これらのうちの 1 つだけが必要ではないでしょうか? こことここで C# の相互排除とロックに関するさまざまな投稿を検索して見つけました。
例:
このアプリには、複数の再接続スレッドをスピンオフする関数があり、このスレッド内で aMutex
と aを使用しlock
ます。コードのこのセクションへのアクセスをブロックし、他のスレッドによる更新lock
を妨げませんか?connect
bool connect = false;
Mutex reconnectMutex = new Mutex(false, "Reconnect_" + key);
try
{
lock(site)
{
if(site.ContainsKey(key))
{
siteInfo = (SiteInfo)site[key];
if(reconnectMutex.WaitOne(100, true))
{
connect = true;
}
}
}
if (connect)
{
// Process thread logic
}
}
catch
{}
reconnectMutex.ReleaseMutex();
詳細:
これは、Web ガーデンで実行されていない ASP.NET WebService にあります。