Home Notices Documents Classes Download Others Rice
Documents  >  usage  >  exitpoint
プログラム実行の終了点

Exit point

CookerGXプログラムの実行は、main クラスの start() メソッドを呼び出して実行することから始まります。 そして、呼び出された start() メソッドは何時か終了します。

start() メソッドの終了は、プログラムの実行終了でしょうか?

CookerGXでは、この質問に対する答えはNoです。たとえば、start() メソッドでイベントハンドラが割り当てられれば、そのハンドラはイベントが発生するのを待っている可能性があります。タイマーハンドラが割り当てられれば、メソッド呼び出しを繰り返している可能性があります。


CookerGXでのプログラムの実行終了とは、インタプリタの置き換えです。

新しい .cgx ファイルが読み込まれ、それを実行するための新しいインタプリタが作成されます。そして、古いインタプリタは新しいインタプリタに置き換えられます。

これは古いインタプリタの、真の意味での終了であり、実行の終了点(Exit point)と呼ばれます。

open method void end()

実行の終了点で古いインタプリタをクリーンアップする必要があるかもしれません。例えば、ハンドラの割り当てをキャンセルする等々。

クリーンアップのために、CookerGX はインタプリタが置き換えられる直前に main クラスの end() メソッドを呼び出そうとします。

ただし、end() メソッドの定義はオプションであるため、end() メソッドが存在すれば呼び出されます。それ以外の場合は何も行いません。 これは start() メソッドとは異なる点です。

end() メソッドの定義のアウトラインは、以下の様になります。

1:

open method void end()

2:

// メソッド定義。

3:

endmethod

上に示したように、end() は引数なしの戻り値のない "end" という名前のオープンメソッドです。

戻り値があっても大丈夫ですが、無視されるので無意味です。

Next
Previous
Copyright © CookerGX All rights reserved.