[Squeak-ja: 3816] Re: ループしているプロセスの停止について

Kazuhiro ABE abee @ squeakland.jp
2008年 2月 7日 (木) 16:14:19 JST


阿部@新百合です。

いきなりforkを送ると、あとでそのプロセスを捕まえにくくなるので、まずは変
数に入れたほうが良いと思います。

arm := LineMorph from: 290 @ 300 to: 710 @ 300  color: Color black width: 5.
process := [[ arm openInWorld.
   ( Delay forSeconds: 1) wait] repeat] newProcess.
process resume

これを終了するときは以下のようにします。

process terminate

他どのようなメソッドがあるかはProcessクラスのインスタンスメソッドを見てく
ださい。
forkは単なる予約語ではなく、メッセージですから、ブロックにforkを送ったと
きになにが起こっているかを考える必要があります。
ワークスペースなどでforkを選択し、Alt+bを押すとその定義を調べることができ
ます。
せっかく中身を参照できるわけですから、今回の問題に限らず、分からないこと
があったら、中を調べてみるのは良い習慣だと思います。

また、自由自在では一章を費やして並行処理について解説しています(第12章)。

 //abee
--
阿部 和広  EMAIL abee @ squeakland.jp


Squeak-ja メーリングリストの案内