Ausfahrt aus einer Konsolenanwendung in C#
Ich lese eine Menge Dinge hier auf stackoverflow, Kommentare, Meinungen und jegliche Art von Ideen. Aber wie auch immer, ich brauche wirklich eine Weise erklärt, um zu beenden mein console-Anwendung (ich bin auf VS2010 Framework 4) auf C# mit dem ein benutzerdefinierter Fehler.
Das beste, was ich Lesen konnte, ist jetzt auf VB:
Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
und verwenden ExitProcess(1) nach einem Fehler oder ExitProcess(0)
Also meine Fragen sind:
- Ist das gleiche, als die Umgebung.Exit(1) ?
- Was ist besser für eine Anwendung, die läuft als automatischer job?
- Was bedeutet, dass die exit-codes, -1, 0, 1, und was sind deren Unterschiede?
- Was static void ExitProcess(uint uExitCode); ?
Zuvor einige Fragen gekennzeichnet, die als Bibliographie:
Was ist der Befehl zum beenden einer Konsolenanwendung in C#?
http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx
- Was brauchen Sie erklärte, dass nicht erklärt in dem Beitrag, den Sie verlinkt? Und wo ist
static void ExitProcess(uint uExitCode)
definiert? - Da fand ich einige Seiten, die sagt verschiedene Dinge, und hat andere Fehler-code. Ich konnte keine msdn hilfreiche Seite, nur auf C++, so wie dieses hier: geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx übrigens mein code ist definiert in der Klasse Programm wo wohnt der static void Main
- Nur int zurückgeben von
Main
, das ist Ihre exit-code. - Sie vielleicht gefunden haben, Seiten, die unterschiedliche Dinge sagen, aber es ist eine Antwort, auf Ihre Frage auf StackOverflow schon, und Sie sollten erwarten, dass die Antwort ist "die Antwort" von StackOverflow. Was ist mit den vorhandenen Antwort verstehst du nicht?
- möglich, Duplikat der Was ist der Befehl für beenden eine Konsolenanwendung in C#?
- Ich sah die Rückkehr Lösung, aber ich veraltet, es ist sicher für die Umwelt?
- gut zuerst von allen, ist die Frage nicht eine akzeptierte Antwort. Durch die mehr gestimmt Lösung, ich bin nicht gelöscht, wenn Sie die Rückkehr Lösung ist klar und sicher für die Umwelt. Die Umwelt.die Ausfahrt ist veraltet, indem die gleiche Antwort
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie:
1) die Umwelt.Exit ist fast das gleiche,
2) ich denke, die windows-automation-service? versuchen Sie es, aber ich denke ich wird nicht funktionieren, wie erwartet...
3) schauen Sie, diese, Windows Exitcodes
4) Es ist nett aber Sie konnte die .Netto errichtet in der Methode auch
Environment.Exit
werden das gleiche tun wieExitProcess
(plus vielleicht einige .Net Aufräumen) - die Endergebnisse sind identisch.Als für exit-codes, die Sie bedeuten, was Sie wollen (innerhalb Grund) - 0 ist 'erfolgreich', != 0 'nicht erfolgreich', aber Sie können alle nicht-0-Wert, den Sie mag bedeuten was Sie wollen, es liegt an dem Programm mit, dass der Wert, etwas nützliches zu tun mit es.
Unten sind einige der die ExitCodes für bestimmte Ihrer Frage, wenn Sie mit
Environment.Exit(ExitCode)
Weitere ExitCodes mit details finden Sie hier http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs. 85).aspx
Dies ist .NET, Sie kaum wissen, welche WINAPI haben Sie umgesetzt, ohne peeping von innen, mit windbg.Ist aber nichts dokumentiert wurde, über die ähnlichkeit in
ExitProcess
undEnvironment.Exit
.Environment.Exit
kann enthalten mehr als ExitProcess.Wenn Sie einen Laufenden automatisierten job mit einigen scheduler, als ich auch die andere Idee, die windows-Dienste statt.Dies wird entfernen Sie alle Kopfschmerzen von exitprocess.
Sie sind einfach nur codes zu sagen, OS die Art des Ausganges. Sie können gesehen haben Programmierer die Angabe
return 1
auf Fehler oderreturn 0
auf Erfolg.Das macht Sie frei zu benutzen, einen von Ihnen.Sind Sie frei, verwenden Sie nicht verwaltete Anrufe in der Anwendung und sicher, Sie werden es vermissen, den management-Aktivitäten von
Environment.Exit
.Ich die Beantwortung der Frage "Was bedeutet der exit-codes, -1, 0, 1, und was sind deren Unterschiede?"
Unterschiedliche exit-codes sind nur eine Methode der Kommunikation status mit Anrufer-Anwendungen.
Zum Beispiel in einem der Projekte, an denen ich beteiligt sind, verwendeten wir 99 als Warnung code. Solange alle Anwendungen beteiligte weiß, was zu tun ist, wenn Sie erhalten 99 oder etwas anderes, es ist gut. In dieser Anwendung, wenn der Anrufer alles andere als 0 oder 99 ist, sollte der Aufrufer abort und bei 99 war es kostenlos weiter.