Como criar corretamente um aplicativo WPF de execução única?
Olá a todos! Estou escrevendo um aplicativo WPF em C# e me deparei com um problema: se o usuário executa o aplicativo várias vezes, várias janelas são abertas, o que causa confusão e carga desnecessária. Quero fazer com que, ao executar novamente, o aplicativo foque na janela já aberta ou exiba uma mensagem de que o programa já está em execução.
Tentei usar `Process.GetProcessesByName`, mas isso não é confiável, pois pode haver vários processos com o mesmo nome. Tentei pesquisar na internet, mas encontrei muitas abordagens diferentes — via `Mutex`, via `EventWaitHandle`, via `NamedPipe`. Sou iniciante e não entendo qual método é considerado correto e seguro.
Aqui está um exemplo do meu código (App.xaml.cs), que estou tentando modificar:
```csharp
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
// Aqui quero adicionar a verificação de instância única
base.OnStartup(e);
}
}
```
Por favor, me ajudem.