C# の using ステートメントを使用すると問題が発生する可能性があるこのシナリオについて読んでいました。using ステートメントの最後に呼び出された Dispose 関数も例外をスローする場合、using ブロックのスコープ内でスローされた例外は失われる可能性があります。これは、using ステートメントを追加するかどうかを決定する際に、特定のケースで注意を払う必要があることを強調しています。
私は、ストリームと DbConnection から派生したクラスを使用する場合にのみ、using ステートメントを使用する傾向があります。管理されていないリソースをクリーンアップする必要がある場合は、通常、finally ブロックを使用することを好みます。
これは、IDisposable インターフェイスを使用して、タイマーを停止し、Dispose 関数内のレジストリに時間を記録するパフォーマンス タイマーを作成する別の方法です。 http://thebuildingcoder.typepad.com/blog/2010/03/performance-profiling.html
これは IDisposable インターフェイスをうまく利用していますか? リソースをクリーンアップしたり、それ以上のオブジェクトを破棄したりすることはありません。ただし、プロファイリングしているコードを using ステートメントできちんとラップすることで、呼び出し元のコードをクリーンアップする方法を確認できます。
using ステートメントと IDisposable インターフェイスを使用してはいけない場合はありますか? 以前に、using ステートメントで IDisposable またはラッピング コードを実装することで問題が発生したことがありますか?
ありがとう