C ++の一般的なパターンは、ロックをラップするクラスを作成することです。ロックは、オブジェクトの作成時に暗黙的に取得されるか、後で明示的に取得されます。オブジェクトがスコープ外になると、dtorは自動的にロックを解除します。C#でこれを行うことは可能ですか?私が理解している限り、オブジェクトがスコープ外になった後、C#のdtorがいつ実行されるかについての保証はありません。
明確化:一般的なロック、スピンロック、ReaderWriterLockなど。Disposeを呼び出すと、パターンの目的が無効になります。つまり、スコープを終了するとすぐにロックが解放されます。途中でreturnを呼び出したり、例外をスローしたりするかどうかは関係ありません。また、私が理解している限り、使用するとGCのオブジェクトのみがキューに入れられ、すぐに破棄されることはありません...