Detectando se outra instância do aplicativo já está em execução

Meu aplicativo precisa se comportar de maneira um pouco diferente quando carregado, se já houver uma instância em execução.

Entendo como usar um mutex para impedir o carregamento de instâncias adicionais, mas isso não resolve o meu problema.

Por exemplo:

A instância 1 é carregada, obtém o mutex.A instância 2 é carregada, não é possível obter o mutex, sabe que há outra instância. Por enquanto, tudo bem.A instância 1 fecha, libera o mutex.A instância 3 é carregada, obtém o mutex, não sabe que a instância 2 ainda está em execução.

Alguma ideia? Felizmente, ele não precisa lidar com várias contas de usuário ou algo assim.

(C #, aplicativo de desktop)

Editar: para esclarecer, o aplicativo não precisa se restringir a uma única instância, basta executar uma ação de inicialização ligeiramente diferente se já houver outra instância em execução. Várias instâncias são boas (e esperadas).

questionAnswers(4)

yourAnswerToTheQuestion