2016-02-26 18 views
5

C++ System.exit(0) hat, VB hat End, hat C# Application.ExitProgramm in Smalltalk beenden?

Wie würden Sie ein Programm in Smalltalk beenden? Ich benutze Pharo. Hinweis: Ich möchte Pharo nicht selbst verlassen, sondern nur mein Programm während dieser speziellen Anweisung beenden.

Ich fand, wie Pharo selbst zu verlassen, aber auch dies ist nicht das, was ich suche: Smalltalk exit: 0.

Vielen Dank für jede Hilfe!

+2

Was ist ein Programm im Kontext von Smalltalk? Meinst du eine Anwendung wie ein Browser, ein Debugger oder ein Arbeitsbereich? –

Antwort

5

Sie Frage hat eigentlich zwei Teile. So aufregend Pharo selbst ist das Äquivalent zu System.exit(0). Da ein System einen C++ - Prozess ausführt und dann beendet wird, gilt dies auch für Pharo.

Also weiter so: Sie können erwägen, ein anderes Pharo-Bild von Ihrem aktuellen zu starten und den Prozess selbst zu beenden, wenn Sie möchten.

Was Sie wirklich fragen ist, wie man einen Teil des Codes, der in Pharo ausgeführt wird, beendet. Und das ist eine komplizierte Frage, weil Sie auch beantworten müssen, wo die Grenze zwischen Ihrem Code und Pharo ist. Ich denke, das hängt von Ihrer Implementierung ab. Vielleicht ist es genug, um ein Fenster zu schließen oder eine Instanz Ihrer Klasse von irgendwo zu entfernen.

Wenn Sie einen allgemeineren Ansatz Sie die Ausführung in einem separaten pharo Prozess beginnen [ ] fork durch die Verwendung und dann stoppen entweder durch das Senden es suspend oder terminate (Sie den aktiven Prozess mit Processor activeProcess bekommen). Alternativ können Sie auch thisContext terminate tun.

+0

Und in der Praxis verwenden wir nur den generischen Ansatz für Server-ähnliche Prozesse. –