C# Programm beenden IN classe != main!

no idea

Lt. Junior Grade
Registriert
Feb. 2004
Beiträge
452
Sers,

Hat jemand einen Befehl mit dem ich in einer anderen klasse als der main das Programm direkt beenden kann?
Am besten ein Befehl, der das sauber abwickelt.
 
wenn ich aber eine klasse für ein menue erstellt habe und dort auch ein programm ausgang bewirkt werden kann?

wieder in die main soll er nicht springen da er dann direkt in weitere klasen wandern würde.
 
du musst erstmal klarstellen was du machst.... sind es mehrere thread oder mehrere Prozesse?
ist dein Programm wirklich in C# oder in eine andere sprache?

wenn du C# hast... kannst du keine klasse beenden. du kannst eine bestimmte klasse den null wert zuweisen => speicher wird gelöscht. du kannst auch eine klasse dispose methode zuschreiben, so dass alle deine variable von garbage collector gelöscht werden.

wenn du ein prozesse beenden willst in C# Application.Exit(); hmm ja je nach dem um was es für ein projekt handelt. ich habe nur mit win forms gearbeitet und keine console application deswegen kann ich nicht sagen. aber generell Application.Exit(). Eventuell musst du den Prozess von deinen BS abfragen und dann mit EXIT beenden, weil es ja auch sein kann dass du mit App...Exit() alle deine Prozesse beendest. musst du halt ausprobieren. Google schadet auch nie, natürlich wenn du dein thema in stichwörtern verfassen kannst.
 
Kill() ist es für ein Process, nicht Exit(). Nur so am Rande. Und Kill ist auch so unschön wie es klingt ;-)
 
is schon C#...
ich hab ne lösung gefunden (mein projekt wird halt langsam ein wenig unübersichtlich trotz klassenOo)
-danke euch dennoch:)
 
nicht das was ich mit dem thema gesucht hatte.
konnte nen logischen work around machen aber das wär zuviel zu schreiben da das ja ne spezifische sache is.
 
und das system.environment.exit(0)
hinterlässt auch keine speicherleichen etc?
 
Wohl eher nicht, daher gibt es ja den Befehl zum beenden in C nicht direkt.
Der Prorammierer soll dafür sorgen, dass auch alles wieder schön aufgeräumt wird, z.B. geöffnete Dokumente, dass man die noch speichern kann.

Beispiel: Word würde sich mit exit(0); bei Klick auf das Kreuz beenden, das wär richtig doof, oder?
 
und das system.environment.exit(0)
hinterlässt auch keine speicherleichen etc?

Solange du in der .Net Umgebung bist, kannst du soviel Sinn und Unsinn treiben, wie du willst. Der GarbageCollector ist so freundlich und räumt den Mist dann auf. Einzige mir bekannte Ausnahme ist mal wieder Automatisierung von MS Excel und ähnlichem COM+ Kram. Da muss man schon etwas mehr "Hand anlegen". Liegt aber nicht zwingend am Design vom .Net Framework, sondern mehr am COM+ ...

Der Prorammierer soll dafür sorgen, dass auch alles wieder schön aufgeräumt wird, z.B. geöffnete Dokumente, dass man die noch speichern kann. Beispiel: Word würde sich mit exit(0); bei Klick auf das Kreuz beenden, das wär richtig doof, oder?

Ist mir jetzt nicht ganz klar, was du da schreibst...
 
Ok, jetzt hab ich verstanden, was du geschrieben hast. Das zählt dann wohl eher zum guten Stil des Entwicklers, das er dem Anwender die Chance gibt seine letzten Änderungen noch zu speichern. Für das Programm ist es jedoch selber unerheblich, ob es das macht oder nicht. Es ging ja nur um das Beenden des Programmes und ob dann Reste im Arbeitsspeicher bleiben die nicht aufgeräumt wurden. Was aber im Falle von .Net nicht der Fall ist, da diese Aufgabe nicht vom Entwickler selbst, sondern vom GarbageCollector bearbeitet wird. Zudem hat der Entwickler nicht wirklich die Chance das ganze zu beeinflußen, wann und wie die Objekte bereinigt werden. Er kann sicher den GarbageCollector darauf hinweisen, das GC jetzt mal nach Speicherleichen suchen soll, der eigentliche Aufräumprozess ist aber nicht mehr in seiner Hand.
 
Zurück
Oben