|
分類:[.NET 全般]
以下の様なメソッドがあります。
public static int Sub(Mutex mut) { mut.ReleaseMutex(); return -1; }
これは、例外処理の時に行うMutexの解放と-1を返す処理を共通化しています。 そして、Mainメソッド内で Sub(mut); と書いて呼び出しています。
この処理自体はうまくいくのですが、この処理をreturnで抜けたあとにメインメソッドが続行されるため、一つ問題が起こっています。 メインメソッドの最後に、
mut.ReleaseMutex(); return 0;
という感じで正常に処理が行われた場合の後始末を記述しているので、Subメソッドを抜けた後でもう一度Mutex解放を行おうとしてしまいます。 するとエラーが出てしまいます。 それを回避してもreturnで0が返ってしまいます。
どうにかしてSubメソッドの処理が終わった時点でプロセスを終了できないでしょうか?
共通化せずにそれぞれの場所で解放処理とreturnを書けば一応動くのですが、見た目が悪いため質問させて頂きました。
|