C#および.NET
で単一インスタンスWPFアプリケーションを構築する方法c#/。ネットWPF開発では、アプリケーションを単一の実行インスタンスに制限することが望ましいことがよくあります。 これは、Mutex(相互除外)を使用して効率的に達成されます
Mutexは、複数のスレッドまたはプロセスにわたる共有リソースへのアクセスを制御する同期プリミティブです。 WPFのコンテキストでは、同時に実行されるアプリケーションインスタンスが1つだけ保証されます。 この単一インスタンスの動作を実装するには、アプリケーションのメインクラス内に静的オブジェクトを作成することが含まれます。
コンストラクターは、2つの引数を受け入れます。新しいミューテックスを作成するか、既存のミューテックスを開くかを示すブール値と、Mutexの名前(一意の識別子)。Mutexを作成した後、Mutex
を返し、新しいインスタンスが起動しないようにします。
新しい起動試行の実行中のインスタンスを通知するなど、機能の強化については、Windowsメッセージまたはその他のプロセス間通信技術の使用を検討してください。 たとえば、カスタムWindowsメッセージを登録して、2番目のインスタンスの初期化で既存のインスタンスに送信します。
Mutex
このMutexベースのアプローチでは、一度に1つのWPFアプリケーションインスタンスのみが実行されることを保証し、リソースの競合を防ぎ、冗長アプリケーションウィンドウを回避することでユーザーエクスペリエンスを改善します。
以上がWPFアプリケーションが単一のインスタンスとしてのみ実行されるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。