1 votes

Lancer une application de console unique

Duplicata possible : Exécuter une seule instance d'une application en utilisant Mutex

J'utilise VS 2008 en C# sur une application console. Je ne suis pas sûr qu'il existe une classe disponible (processus ?) pour limiter l'exécution d'une seule application console à la fois.

3voto

Rinat Abdullin Points 13520

Une telle classe n'existe pas, mais vous pouvez utiliser System.Threading.Mutex pour en construire un.

Mutex est une primitive de synchronisation qui peut également être utilisée pour la synchronisation interprocessus.

Voir l'exemple : Comment s'assurer qu'une seule instance d'une application sera exécutée ?

1voto

BFree Points 46421

J'ai fait ça rapidement, mais ça affiche brièvement la deuxième console, puis la cache. Je ne suis pas sûr qu'il y ait un moyen d'empêcher la deuxième console de s'afficher...

class Program
{
    private static Mutex mutex;

    static void Main(string[] args)
    {
        mutex = new Mutex(true, "MyMutex");
        if (!mutex.WaitOne(0, false))
        {
            return;
        }
        Console.WriteLine("Application started");
        Console.ReadKey(true);

    }
}

Vous devrez ajouter une référence à System.Threading.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X