この相互排除のパターンは、私が思うほど安全ですか?もしそうなら、あなたはそれを何と呼びますか?
lock (_lock) {
if (_flag) return;
else _flag = true;
}
try {
//critical code...
}
finally {
_flag = false;
}
クリティカルセクションを確保したいのですが、他のスレッドがロックを取得するのを待って積み重なることはありません。明らかに、私はフラグが他のどこにも設定されていないことを確認します。もっと良い方法はありますか?