Heim > Backend-Entwicklung > C++ > Wie erstelle ich eine einzelne WPF-Anwendung mit Mutexes?

Wie erstelle ich eine einzelne WPF-Anwendung mit Mutexes?

Barbara Streisand
Freigeben: 2025-02-02 07:16:09
Original
351 Leute haben es durchsucht

How to Create a Single-Instance WPF Application Using Mutexes?

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

Wenn die Anwendung startet, verwenden Sie die Methode
<code class="language-csharp">static Mutex mutex = new Mutex(true, "{8F6F0AC4-B9A1-45fd-A8CF-72F04E6BDE8F}");</code>
Nach dem Login kopieren
, um zu überprüfen, ob sie gegenseitig ausgeschlossen sind. Wenn diese Methode zurückgibt, bedeutet dies, dass die Anwendung die erste Instanz ist, die weiterhin ausgeführt werden kann. Wenn zurückgegeben wird, bedeutet dies, dass eine andere Instanz bereits ausgeführt wird.

<.> 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>
Nach dem Login kopieren
<.> 4. Behandlung der benutzerdefinierten Nachricht:

In ausgeführten Instanzen wird die benutzerdefinierte Nachricht verarbeitet, indem die Methode

des Hauptfensters neu geschrieben wird.

PostMessage()

<.> 5. Zeigen Sie die Instanz, die ausgeführt wird:
<code class="language-csharp">NativeMethods.PostMessage(
    (IntPtr)NativeMethods.HWND_BROADCAST,
    NativeMethods.WM_SHOWME,
    IntPtr.Zero,
    IntPtr.Zero);</code>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage