Beenden einer Konsolenanwendung in C #

7

Ich lese hier eine Menge Dinge über stackoverflow, Kommentare, Meinungen und jede Art von Ideen. Aber wie auch immer, ich brauche wirklich einen erklärten Weg, um meine Konsolenanwendung (ich bin auf VS2010 Framework 4) auf C # mit einem benutzerdefinierten Fehler zu beenden.

Das Beste, was ich jetzt lesen konnte, ist VB:

%Vor%

und verwenden Sie ExitProcess (1) für einen Fehler oder ExitProcess (0)

Meine Fragen sind also:

  • Ist das gleiche wie Environment.Exit (1)?
  • Was ist besser für eine Anwendung, die als automatischer Job ausgeführt wird?
  • Was bedeutet die Exit-Codes, -1, 0, 1, und was sind ihre Unterschiede?
  • Was ist mit statischen void ExitProcess (uint uExitCode); ?

Einige zuvor als Bibliografie markierte Fragen:

Was ist der Befehl zum Beenden einer Konsolenanwendung in C #? ?

Ссылка

    
Leandro Tupone 29.08.2012, 14:39
quelle

6 Antworten

17

Sie können:

  1. Rufen Sie Environment.Exit (int)
  2. auf
  3. Deklarieren Sie die Main-Funktion erneut als int-Wert und geben Sie den Wert zurück.
AnthonyLambert 29.08.2012, 14:46
quelle
3

1) Environment.Exit ist fast das gleiche,

2) Ich denke, der Windows-Automatisierungsdienst? versuchen Sie es, aber ich denke, ich werde nicht wie erwartet funktionieren ...

3) Sehen Sie sich diese Windows Exitcodes

4) Es ist nett, aber Sie könnten auch die integrierte .Net-Methode verwenden

    
codeteq 29.08.2012 14:48
quelle
2

Environment.Exit macht dasselbe wie ExitProcess (plus vielleicht einige .Net Bereinigung) - die Endergebnisse sind die gleichen.

Was Exit-Codes betrifft, meinen sie, was immer Sie wollen (im Rahmen des Zumutbaren) - 0 ist 'erfolgreich',! = 0 ist 'nicht erfolgreich', aber Sie können einen anderen Wert als 0 verwenden Es liegt an dem Programm, das diesen Wert verwendet, um etwas Nützliches damit zu tun.

    
PhonicUK 29.08.2012 14:43
quelle
2

Nachfolgend finden Sie einige der ExitCodes, die für eine Ihrer Fragen spezifisch sind, wenn Sie Environment.Exit(ExitCode)

verwenden %Vor%

Weitere ExitCodes mit Details finden Sie hier Ссылка

    
HatSoft 29.08.2012 14:50
quelle
0
  

-1. Ist dasselbe wie Environment.Exit (1)?

Das ist .NET, Sie wissen kaum, welche WINAPI sie dafür implementiert haben, ohne mit windbg nach innen zu gucken. Über die Ähnlichkeit in ExitProcess und Environment.Exit . Environment.Exit können mehr als ExitProcess enthalten.

  

-2. Was ist besser für eine Anwendung, die als automatischer Job ausgeführt wird?

Wenn Sie einen laufenden automatisierten Job mit einem Scheduler ausführen, habe ich auch eine andere Idee, stattdessen Windows-Dienste zu verwenden. Dadurch werden alle Probleme des Exitprozesses beseitigt.

  

-3. Was bedeutet die Exit-Codes, -1, 0, 1, und was sind ihre Unterschiede?

Sie sind nur Codes, um OS die Art des Beendens mitzuteilen. Möglicherweise haben Programmierer gesehen, dass return 1 bei einem Fehler oder return 0 bei einem Erfolg angegeben wurde. Dies macht es Ihnen frei, einen von ihnen zu verwenden.

  

-4. Was ist mit statischen void ExitProcess (uint uExitCode); ?

Sie können in Ihrer Anwendung nicht verwaltete Anrufe verwenden und Sie werden sicherlich die Verwaltungsaktivität von Environment.Exit verpassen.

    
perilbrain 29.08.2012 15:12
quelle
0

Ich beantworte die Frage "Was bedeutet die Ausgangscodes, -1, 0, 1, und was sind ihre Unterschiede?"

Unterschiedliche Beendigungscodes sind nur eine Methode, um den Status von Anruferanwendungen zu übermitteln. Zum Beispiel haben wir in einem meiner Projekte 99 als Warncode verwendet. Solange alle beteiligten Anwendungen wissen, was zu tun ist, wenn sie 99 oder etwas anderes erhalten, ist es in Ordnung. Wenn in dieser Anwendung der Anrufer etwas anderes als 0 oder 99 empfängt, sollte der Anrufer abbrechen und im Fall von 99 war es frei, fortzufahren.

    
ebayindir 30.08.2012 06:55
quelle

Tags und Links