2009-09-25 6 views
2

des idées sur la façon de redémarrer automatiquement (redémarrer) Application console dans .NET?Comment: Redémarrer automatiquement l'application de console. dans .NET

Je sais que l'application de formes ont quelque chose comme ceci:

Application.Restart(); 

mais cela est impossible pour la console.

En outre, REMARQUE: Le problème est que je ne peux pas commencer deux instances de la même application :)

+0

Pouvez-vous nous donner plus de détails sur votre objectif? –

+0

Mon but est simple - Redémarrez l'application console;) –

+0

Pouvez-vous expliquer pourquoi vous ne pouvez pas avoir deux instances? Avez-vous du code dans votre application qui vérifie ces conditions? Si oui, alors dites-nous comment ce code détecte les autres instances. Il n'est pas possible de répondre à votre question si nous ne connaissons pas ces détails. – Paulius

Répondre

0

Vous pouvez créer un nouveau processus pour votre application (voir la classe Process), le lancer, et fermez votre application actuelle immédiatement après cela.

+0

Le problème est, que je ne peux pas démarrer deux instances de la même application :) –

+0

Est-ce pour qu'ils n'exécutent pas de tâches simultanées? Si oui, vous pouvez ajouter un thread simple (processStillRunning) Thread.Sleep (1000); jusqu'à ce que l'autre application ait été fermée avec succès. Cela peut également être fait via la classe Process. –

+0

Vous pouvez utiliser ceci, mais ensuite bloquer le nouveau processus juste à l'intérieur de la méthode principale, jusqu'à ce que l'ancien processus soit fermé, pour s'assurer que deux processus ne s'exécutent pas en même temps. – Kazar

0

Eh bien, vous pouvez démarrer un programme qui démarre simplement une nouvelle instance de votre programme après la sortie de l'ancienne instance.

0

Vous pouvez créer une application de lancement qui attendrait quelques secondes, puis démarrerait l'application de console réelle. Ensuite, chaque fois que vous avez besoin de redémarrer l'application, lancez le lanceur et quittez.

Il pourrait y avoir d'autres méthodes plus jolies, mais vous devrez expliquer plus en détail cette partie de votre question: "Je ne peux pas démarrer deux instances de la même application".

0

vous pouvez mettre dans la méthode principale une boucle alors qu'une condition de redémarrage est vrai:

static void Main(string[] args) 
{ 
    do 
    { 
     Main2(args); 
     //Some cleaning may be... 
    }while(someCondition) 
} 

private static void Main2(string[] args) 
{ 
    .... 
} 
0

Vous pouvez essayer de créer un fichier batch pour exécuter l'application de la console, puis un service pour exécuter le fichier batch si il n'est pas en cours d'exécution.

0

Je peux me tromper, mais une application de console .NET qui est une instance unique semble être une faille de conception. Cela ressemble plus à un service Windows pour moi. Êtes-vous sûr qu'une application console est la bonne chose, et que vous ne pouvez pas autoriser plusieurs instances?

+0

Oui, j'en suis sûr :) Il est possible d'avoir plus d'un même processus disponible, mais ils doivent être démarrés à partir de différents dossiers. –

Questions connexes