Comment créer correctement une application WPF à instance unique ?
Bonjour à tous ! J'écris une application WPF en C# et j'ai rencontré un problème : si l'utilisateur lance l'application plusieurs fois, plusieurs fenêtres s'ouvrent, ce qui entraîne confusion et charge inutile. Je veux faire en sorte que lors d'un lancement ultérieur, l'application se concentre sur la fenêtre déjà ouverte ou affiche un message indiquant que le programme est déjà en cours d'exécution.
J'ai essayé d'utiliser `Process.GetProcessesByName`, mais ce n'est pas fiable car il peut y avoir plusieurs processus avec le même nom. J'ai cherché sur Internet, mais j'ai trouvé de nombreuses approches différentes — via `Mutex`, via `EventWaitHandle`, via `NamedPipe`. Je suis débutant et je ne comprends pas quelle méthode est considérée comme correcte et sûre.
Voici un exemple de mon code (App.xaml.cs) que j'essaie de modifier :
```csharp
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
// Ici, je veux ajouter une vérification pour une instance unique
base.OnStartup(e);
}
}
```
S'il vous plaît, indiquez-moi