Maison > développement back-end > C++ > Comment créer une application WPF à instance unique à l'aide de mutexes?

Comment créer une application WPF à instance unique à l'aide de mutexes?

Barbara Streisand
Libérer: 2025-02-02 07:16:09
original
350 Les gens l'ont consulté

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

C # wpf Single Real Exemple Application

En C #, l'utilisation de WPF pour créer une seule application d'instance nécessite une technologie appelée corps mutuellement exclusif. Mutual Exclusion vise à garantir qu'une seule instance d'application peut être exécutée à la fois.

Comprendre la réprimande mutuelle

corps mutuel agissant comme un chercheur qui agit comme des ressources d'application. Lorsque l'application crée une réprimande mutuelle, elle "verrouille" ces ressources pour empêcher tout autre cas de l'application d'y accéder. Ce mécanisme garantit qu'une seule instance d'application peut être effectuée en même temps.

Créez une seule instance WPF Application

Pour créer une application WPF d'instance unique, veuillez suivre les étapes ci-dessous: <.> 1. Développement d'un corps mutuel exclusif:

Dans le code d'application, déclarez un objet Mutex statique.

Le paramètre spécifie que le corps mutuellement exclusif appartient initialement à l'application. Cet identifiant garantit qu'aucune autre application ne peut utiliser le même corps mutuel.

<.> 2. Vérifiez la propriété corporelle mutuellement exclusive:

true

Lorsque l'application démarre, utilisez la méthode
<code class="language-csharp">static Mutex mutex = new Mutex(true, "{8F6F0AC4-B9A1-45fd-A8CF-72F04E6BDE8F}");</code>
Copier après la connexion
pour vérifier si elle a une exclusion mutuelle. Si cette méthode renvoie , cela signifie que l'application est la première instance qui peut continuer à être exécutée. Si est renvoyé, cela signifie qu'une autre instance est déjà en cours d'exécution.

<.> 3. Informez l'exemple existant:

WaitOne() Si l'application n'est pas la première instance, utilisez la fonction true pour envoyer un message personnalisé pour informer la tentative de démarrage de l'instance en cours d'exécution de la deuxième instance. false

<code class="language-csharp">if (mutex.WaitOne(TimeSpan.Zero, true))
{
    // 应用程序的第一个实例
}
else
{
    // 第二个实例,通知第一个实例并退出
}</code>
Copier après la connexion
<.> 4. Traitement du message personnalisé:

Dans les instances en cours, le message personnalisé est traité en réécrivant la méthode

de la fenêtre principale.

PostMessage()

<.> 5. Afficher l'instance qui s'exécute:
<code class="language-csharp">NativeMethods.PostMessage(
    (IntPtr)NativeMethods.HWND_BROADCAST,
    NativeMethods.WM_SHOWME,
    IntPtr.Zero,
    IntPtr.Zero);</code>
Copier après la connexion

Lorsque l'instance en cours d'exécution reçoit un message personnalisé, vous pouvez utiliser la méthode pour la placer sur la réception.

WndProc En effectuant ces étapes, vous pouvez créer une seule instance WPF pour vous assurer qu'une seule instance d'application est active à la fois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal