C# WPF Single Real Beispielanwendung
In C#erfordert die Verwendung von WPF zum Erstellen einer einzelnen Instanzanwendung eine Technologie, die als sich gegenseitig ausschließende Körperschaft bezeichnet. Zielerschließend zielt darauf ab, sicherzustellen, dass jeweils nur eine Anwendungsinstanz ausgeführt werden kann.
Verstehe den gegenseitigen Verweis
gegenseitiges Körper, der als Suchende fungiert, der als Anwendungsressourcen fungiert. Wenn die Anwendung einen gegenseitigen Verweis erstellt, sperrt sie diese Ressourcen tatsächlich ", um zu verhindern, dass andere Instanzen der Anwendung darauf zugreifen. Dieser Mechanismus stellt sicher, dass nur eine Anwendungsinstanz gleichzeitig durchgeführt werden kann.
Erstellen Sie eine einzelne Instanz -WPF -Anwendung
Um eine einzelne Instanz -WPF -Anwendung zu erstellen, befolgen Sie bitte die folgenden Schritte: <.> 1. Entwicklung des gegenseitigen exklusiven Körpers:
deklarieren Sie im Anwendungscode ein statisches Mutex -Objekt.
Der Parameter gibt an, dass der sich gegenseitig ausschließende Körper zunächst der Anwendung gehört. Diese Kennung stellt sicher, dass keine anderen Anwendungen denselben gegenseitigen Körper verwenden können.
<.> 2. Überprüfen Sie den sich gegenseitig ausschließenden Körperbesitz: true
<code class="language-csharp">static Mutex mutex = new Mutex(true, "{8F6F0AC4-B9A1-45fd-A8CF-72F04E6BDE8F}");</code>
<.> 3.. Benachrichtigen Sie das vorhandene Beispiel:
WaitOne()
Wenn die Anwendung nicht die erste Instanz ist, verwenden Sie die Funktion true
, um eine benutzerdefinierte Nachricht zu senden, um den Start -up -Versuch der laufenden Instanz der zweiten Instanz zu informieren. false
<code class="language-csharp">if (mutex.WaitOne(TimeSpan.Zero, true)) { // 应用程序的第一个实例 } else { // 第二个实例,通知第一个实例并退出 }</code>
In ausgeführten Instanzen wird die benutzerdefinierte Nachricht verarbeitet, indem die Methode
des Hauptfensters neu geschrieben wird.
PostMessage()
<code class="language-csharp">NativeMethods.PostMessage( (IntPtr)NativeMethods.HWND_BROADCAST, NativeMethods.WM_SHOWME, IntPtr.Zero, IntPtr.Zero);</code>
Wenn die laufende Instanz eine benutzerdefinierte Nachricht empfängt, können Sie die -Methode an der Rezeption platzieren.
WndProc
Durch die Ausführung dieser Schritte können Sie eine einzelne WPF -Anwendung erstellen, um sicherzustellen, dass jeweils nur eine Anwendungsinstanz aktiv ist.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine einzelne WPF-Anwendung mit Mutexes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!