.NET での複数のアプリケーション インスタンスの同時実行の防止: 包括的なガイド
.NET 開発では、複数のアプリケーション インスタンスの同時実行を制限する必要がある状況に遭遇することがあります。リソースの最適化のためであっても、機能上の理由であっても、これを実現する方法を理解することが重要です。
ミューテックス ロック: 信頼できるソリューション
アプリケーション インスタンスを制御する最も一般的な方法の 1 つは、Mutex クラスです。ミューテックス ロック (または「ミューテックス」) では、常に 1 つのプロセス インスタンスのみが共有リソースにアクセスできます。一意の識別子 (GUID など) を使用してミューテックスを作成すると、その識別子で実行できるアプリケーション インスタンスは 1 つだけになります。
実装例
次の C# コードは、ミューテックスを使用して複数のインスタンスを防ぐ方法を示しています。
<code class="language-csharp">[STAThread] static void Main() { using (Mutex mutex = new Mutex(false, "Global\" + appGuid)) { if (!mutex.WaitOne(0, false)) { MessageBox.Show("应用程序实例已在运行"); return; } Application.Run(new Form1()); } } private static string appGuid = "c0a76b5a-12ab-45c5-b9d9-d693faa6e7b9";</code>
このコードは、一意の GUID を識別子として使用してミューテックスを作成します。アプリケーションの前のインスタンスが実行中の場合、WaitOne メソッドは False を返し、ユーザーに警告が表示されます。それ以外の場合は、新しいインスタンスが開始されます。
メモ
Mutex は信頼性の高いソリューションを提供しますが、注意すべき点がいくつかあります:
代替方法
場合によっては、Mutex の使用が複雑すぎるか、非現実的である可能性があります。考慮すべきその他の方法は次のとおりです。
結論
.NET で複数のアプリケーション インスタンスを防止するには、ユースケースと潜在的な制限を慎重に検討する必要があります。 Mutex は排他性を強制するための信頼できるソリューションを提供しますが、その注意点を理解し、必要に応じて代替案を検討する必要があります。これらのガイドラインに従うことで、開発者はアプリケーションが競合やリソースの競合なしに期待どおりに実行されることを保証できます。
以上が.NET アプリケーションの複数のインスタンスが同時に実行されないようにする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。