通常、私はこれらの2つのコードをすべて見ています。どちらも私の場合には動作しますが、どちらに固執すべきですか?以下のMutex式のうち、.Netアプリケーションの複数のインスタンスを理想的に防ぐことができ、その違いは何ですか?
ケース1:
bool isNew = false;
Mutex mutex = new Mutex(true, "MyApp_Mutex", out isNew);
if (!isNew)
{
MessageBox.Show("already running.", "Multiple Instances Not Allowed",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
ケース2:複数のインスタンスを防ぐために、両者の間の理想的な方法です
Mutex mutex = new Mutex(false, "MyApp_Mutex"))
if (!mutex.WaitOne(0, false))
{
MessageBox.Show("already running.", "Multiple Instances Not Allowed",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
?
違いは何ですか?
//if not return{ mutex.ReleaseMutex(); GC.Collect(); //application.Run(); GC.KeepAlive(mutex);
決して最初と:
はまた、私はこれらのようなコードを参照してください。どうしてこんなことに?それとも間違っていたのですか?
基本的には、使用するパラメータと方法を正しく理解している必要があります。誰かが簡単に細かいことが分かると感謝します。私はmsdnのドキュメントを読んでいるときに半分ではないと理解しています。
ありがとうございます。私はよりエレガントになる最初を見つける.. – nawfal
私は質問に追加するもう一つの疑いがあります。あなたがそれを見ることができるなら、大きな助けになるでしょう。 – nawfal
はい、あなたは私に論理的に聞こえます。 – nawfal