● サンプルプログラム - basMT
StrCalc BASIC を非同期のマルチスレッドで並列処理するサンプルプログラムです。
(実行結果)
描画中にウインドウ内をクリックすると、処理を中断します。
プログラムを終了する場合は、ウインドウ右上の×ボタンをクリックします。
処理内容
スレッドは3つ作成されます。各スレッドは独立した BASIC 環境を持ち、出力先は同じウインドウです。BASIC プログラムは共通で使用されます。
basMT では、各スレッドで描画する範囲を分担します。
BASIC の処理用に次の関数、定数、ユーザステートメントを使用できます。
win_width
…
ウインドウ幅。640 固定です。
win_height
…
ウインドウ高さ。480 固定です。
mkrgb
…
RGB 値を作成する(
sc_basic
と同じ仕様)
@pset
…
ウインドウ内に点を描画(
sc_basic
と同じ仕様)
次の変数で、スレッド情報が渡されます。BASIC 側は、これらの情報を用いてスレッド単位に処理を分けるように記述します。
thread_cnt
…
スレッド数。デフォルトでは 3 が渡されます。
thread_id
…
各スレッドに割り当てられる番号。デフォルトでは 0 、1 、2 のいずれかが渡されます。
このプログラムでは、一回の起動で一度しか BASIC を実行しません。BASIC プログラムを変更した場合は、exe を起動し直してください。