現在、いくつかのメソッドを使用してシングルトン クラスを実装する作業を行っています。各メソッドは、実際にはデータベースへの接続である同じプライベート フィールドを使用します。それぞれの方法で、リーダーは開かれようとしています。ご覧のとおり、これはアプリケーションのスコープ全体で共有される単一の接続です。リーダーが既に開いているときに Ado.Net でリーダー接続を開こうとすると、例外が発生します。このケースは、リーダーを開いた後に閉じるのを忘れた場合に発生する可能性がありますが、私の場合は複数のスレッドを使用していくつかのことを行うため発生します。
私の質問は: メソッドごとに異なるミューテックス オブジェクトを実装する必要がありますか、それともすべてのメソッドで共有される単一のオブジェクトで十分ですか?
シングルトンが良いパターンになることはめったにないことを私は知っています。また、共有接続が適切ではないことも知っていますが、私のプロジェクトは winforms プロジェクトであり、レガシーと見なされていることを覚えておいてください。私のクライアントも、アプリケーションの再設計にお金を払いたくありません。この場合、ミューテックスをどのように処理する必要があるかについての答えが欲しいだけです。
どうぞよろしくお願いいたします。