5
私のコードにはロックがあります。
私は同時に2つのスレッドを実行しています。 スレッドがそのオブジェクトをロックしているかどうかを確認するにはどうすればよいですか?オブジェクトがロックされているかどうか調べるには? c#
private readonly object _lockObject = new Object();
// Both methods running
public void Method1()
{
if(certainCriteria)
{
lock(_lockObject)
{
//doWork;
}
}
}
// Both methods running
public void Method2()
{
if(isLocked?(_lockObject))
{
//doWork;
}
}
誰でもisLockedを取得していますか?方法?
ありがとうございます!
@Jon:Yaowは速すぎます。yaawは(ブラックカントリーのアクセントを管理することができればもっと読みやすくなります)。それは私が "ロックの仕組み"を知っている根拠に基づいて動作するという巨大な警告で提案しようとしていたものでした。 – AnthonyWJones
私は、ロックの仕組みを知っていることに依存しているという事実に特に悩まされているわけではありません。それは間違っていると感じるだけです。私はあえてそれが役に立ついくつかの状況があると言っていますが、おそらく実際に使用されている場所よりも少ないでしょう! –
こんにちはJon!私はBufferManagerを実装しています。基本的にはStack of Buffersを持っています。スレッドpop()がスタックで空です。スレッドがスタックをいっぱいにしている間、すべてのスレッドが次のpop()で待機するようにします。一度塗りつぶされると、他のすべてのスレッドがポップする。私はC#のロック機構について確信しています! – divinci