Anfänger sucht Ratschlag
-
berniebutt schrieb:
Application.Exit() beendet nur alle Windows und Message-Loops.
Im Falle eines offenen StreamWriter erfolgt eine Exception.
Allein die Methode .Closing() wird noch erreicht.Hätt ich auch nicht gewusst. Kann volkard etwa .NET?
-
berniebutt schrieb:
Application.Exit() beendet nur alle Windows und Message-Loops.
Im Falle eines offenen StreamWriter erfolgt eine Exception.
Allein die Methode .Closing() wird noch erreicht.Quatsch (der Teil mit der Exception).
-
Mechanics schrieb:
berniebutt schrieb:
Application.Exit() beendet nur alle Windows und Message-Loops.
Im Falle eines offenen StreamWriter erfolgt eine Exception.
Allein die Methode .Closing() wird noch erreicht.Hätt ich auch nicht gewusst. Kann volkard etwa .NET?
Da brauchst du keine Kenntnisse in .Net. Da reicht ein wenig nachdenken, woher
Application.Exiteigentlich kommt. Nämlich von WinForms oder WPF. Das sind Bibliotheken komplett unabhängig von IO wie bei einem Stream. Der Stream meldet sich sicher nicht bei einer Application an oder umgekehrt. Das läuft völlig unabhängig. Zudem garantiert C# nirgendwo, dass ein Stream beim Beenden des Programmes automatisch geflusht wird. Sowas umzusetzen wäre auch etwas krank aufwendig bis unmöglich.Aber abgesehen davon,
Application.Exitmacht, glaube ich, etwas anderes, als gewisse hier denken. Lest mal selber nach:
http://msdn.microsoft.com/en-us/library/ms157894.aspxIn WPF hat man das sinnvollerweise in
Application.Shutdownumbenannt:
http://msdn.microsoft.com/en-us/library/ms597013.aspxMeint ihr womöglich
Environment.Exit?
http://msdn.microsoft.com/en-us/library/system.environment.exit.aspxAber nach wie vor gilt: Nicht zu empfehlen.
Das mit der Exception beim
StreamWriterist tatsächlich Quatsch. Wie kommst du auf die Idee berniebutt? Wenn schon kommt es ja sowieso darauf an, worauf derStreamWriterschreibt. Also würde es um denBaseStreamgehen. Wenn das zum Beispiel einMemoryStreamist, dann fliegt da sicherlich keine Exception.
-
Dravere schrieb:
Da brauchst du keine Kenntnisse in .Net. Da reicht ein wenig nachdenken, woher
Application.Exiteigentlich kommt.Darauf wollte ich nicht hinaus. Ich wollte darauf hinaus, dass ich nicht erwartet hätte, dass volkard überhaupt irgendwas mit .NET am Hut hat.
-
Dravere schrieb:
Das mit der Exception beim
StreamWriterist tatsächlich Quatsch. Wie kommst du auf die Idee berniebutt? Wenn schon kommt es ja sowieso darauf an, worauf derStreamWriterschreibt. Also würde es um denBaseStreamgehen. Wenn das zum Beispiel einMemoryStreamist, dann fliegt da sicherlich keine Exception.Es sollte überhaupt keine Exception fliegen, egal um was für einen Stream es sich handelt, da bei
Application.Exiteben nichts geflusht wird. (Was natürlich auch ein Problem ist, wenn man möchte dass derStreamWriter/Streamgeflusht wird.)Und das was passiert, nämlich dass die
CriticalFinalizerObjects finalisiert werden, wirft normalerweise auch keine Exceptions, da es Usus ist den Finalizer einesCriticalFinalizerObject(bzw. eigentlich eines jeden Objekts) so zu implementieren dass er keine Exceptions wirft.
(Bzw. wäre es sowieso egal, da die Exception dann vermutlich an einer Stelle geworfen wird wo sie einfach gefangen und ignoriert wird.)
-
hustbaer schrieb:
Dravere schrieb:
Das mit der Exception beim
StreamWriterist tatsächlich Quatsch. Wie kommst du auf die Idee berniebutt? Wenn schon kommt es ja sowieso darauf an, worauf derStreamWriterschreibt. Also würde es um denBaseStreamgehen. Wenn das zum Beispiel einMemoryStreamist, dann fliegt da sicherlich keine Exception.Es sollte überhaupt keine Exception fliegen, egal um was für einen Stream es sich handelt, da bei
Application.Exiteben nichts geflusht wird. (Was natürlich auch ein Problem ist, wenn man möchte dass derStreamWriter/Streamgeflusht wird.)Hmmm, ok. Ich bin mir jetzt unsicher darüber, was berniebutt hier genau gemeint hat. Aber womöglich habe ich bereits zu weit gedacht, wenn ich mir die Aussage nochmals durchlese. Wenn er meint, dass
Application.Exiteine Exception wirft, falls noch einStreamWriteroffen ist, dann ist das natürlich kompletter Unsinn.
-
Ich bin auch nicht 100% sicher was er gemeint hat - ich würde nur sagen das ist das was er geschrieben hat.
-
Mechanics schrieb:
Darauf wollte ich nicht hinaus. Ich wollte darauf hinaus, dass ich nicht erwartet hätte, dass volkard überhaupt irgendwas mit .NET am Hut hat.
Kinners, ich bin über .NET hinaus, weil damit Projekte nicht skalieren. Ich hab's ernsthaft versucht. Es geht einfach nicht.
-
Mechanics schrieb:
berniebutt schrieb:
Application.Exit() beendet nur alle Windows und Message-Loops.
Im Falle eines offenen StreamWriter erfolgt eine Exception.
Allein die Methode .Closing() wird noch erreicht.Hätt ich auch nicht gewusst. Kann volkard etwa .NET?
Lerne noch mehr bitte: Der CD-Schacht wird geschlossen und in München gibt es einen Stromausfall, wenn man das macht. Sorry, auf berniebutts Vermutung hatte ich nicht geantwortet, weil sie zu absurd/trollig war. Die Nichtantwort war keine Bekräftigung seiner These.

-
volkard schrieb:
weil damit Projekte nicht skalieren
WTF?