Wie die Konsole neu starten, app?
Muss ich die app starten-Konsole, wenn der Benutzer die Taste "R".
Habe ich diese
Console.WriteLine(message, "Rebuild Log Files"
+ " Press Enter to finish, or R to restar the program...");
string restar = Console.ReadLine();
if(restar.ToUpper() == "R")
{
//here the code to restart the console...
}
Dank
- Starten Sie eine zweite exe-Datei, die endet das Programm console, startet eine neue Instanz und beendet sich selbst?
- ausdrücklich, wie es im code?
- Was bedeutet "die app starten-Konsole" bedeuten?
- Ich denke, Sie wollen das Programm neu zu starten, aber, dass Sie nicht wirklich Sinn über die Console (das Fenster, dass die Gastgeber Ihre Konsole-Programm). Richtig?
- ja, alle wieder da, die beginnen, starten Sie die Konsole-Fenster, und starten Sie den Vorgang..
- Ich verstehe das Programm, aber ich denke, Sie kümmern sich nicht um das Neustarten der Konsole-Fenster. Oder sagen Sie uns, warum, wenn Sie tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass Sie wirklich brauchen, neu starten, ganze app. Führen Sie einfach gewünschten Methode(N) nach drücken der Taste R. Keine Notwendigkeit, neu zu starten.
Eine weitere einfache Möglichkeit
Ich weiß, es ist 7 Jahre alt, aber ich kam gerade über diese. Ich denke tatsächlich, dass das aufrufen der ausführbaren Datei und schließen Sie das aktuelle Programm ist ein bisschen ein cluge. Wie bereits erwähnt, dies wird über Gedanken. Ich denke, die sauberste und die meisten modularen Art und Weise ist, alles zu nehmen, das ist in der
Main
- Methode und machen eine andere Methode, sagen wir malRun()
enthält alles, was in derMain
- Methode, und rufen Sie dann die neueRun()
Methode aus derMain
Methode oder wo im code es gewünscht ist, starten Sie das Programm neu.Also, wenn die
Main
Methode sah so aus:Dann erstellen Sie einfach eine
Run()
Methode und setzen Sie alles ausMain
hinein, etwa so:Nun, dass die
Run()
Methode erstellt und es hat all die Sachen, die in derMain
Methode vor, nur machen Sie Ihre main-Methode so auf:Nun, wo in der code, den Sie möchten, um "re-start" - das Programm, rufen Sie einfach den
Run()
Methode etwa so:Dies ist also ein Blick auf das gesamte Programm vereinfacht:
EDIT: Wenn ich geschrieben dieses Zitat habe ich nicht berücksichtigt, alle Argumente, die vielleicht schon an das Programm übergeben. Um diese vier Dinge müssen geändert werden in meiner ursprünglichen Antwort.
deklarieren Sie eine Globale
List<string>
wie diese:public static List<string> MainMethodArgs = new List<string>();
.In der
Main
Methode setzt den Wert desMainMethodArgs
Liste entspricht derübergebenen Werte in die
Main
Methode überargs
wie diese:MainMethodArgs = args.ToList();
Beim erstellen der
Run()
Methode ändern Sie die Signatur, so dass es erwartet einenstring[]
genanntargs
werden, übergeben Sie es wie folgt:public static void Run(string[] args)
{
....
}
Überall dort, wo im Programm die
Run()
- Methode aufgerufen wird, übergebenMainMethodArgs
zu
Run()
wie diese:Run(MainMethodArgs.ToArray());
Änderte ich das Beispiel unten, um diese änderungen widerzuspiegeln.
In Effekt das Programm "neu gestartet", ohne re-führen Sie die ausführbare Datei und schließen Sie die vorhandene Instanz von dem Programm. Dies scheint viel mehr "Programmierer wie" zu mir.
Genießen.
Starten Sie eine zweite exe-Datei, die endet das Programm console, startet eine neue Instanz und beendet sich selbst?
ausdrücklich, wie es im code?
Diesem Namensraum sollten Sie alles, was Sie brauchen, wenn das ist eine Lösung, die Sie weiter verfolgen wollen.
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx
Jeder ist über-denken. Probieren Sie etwas wie dieses:
versuchen wie diesem: