また教えていただきたいことができましたので、
ご多忙中に恐縮ですがよろしくお願いいたします。 次のようなcodeを書いてdo it しました。 arm := LineMorph from: 290@300 to: 710@300 color: Color black width: 5. [[ arm openInWorld. ( Delay forSeconds: 1) wait] repeat] fork 当然loopになってしまい、止めたいのです。 そこで自由自在Squeak p.277に習って (ActiveWorld submorphs select: [:each | each isKindOf: PolygonMorph]) do: [:each | each delete]. としてみましたが、効き目ありません。 もちろんAlt + . もやってみましたけれど。 どうしたらよいでしょうか。 ご教示をお願いいたします。 久保 道 |
阿部@新百合です。
いきなり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 [hidden email] |
阿部さん、さっそく教えていただいて、
ありがとうございました。 ただ、前回書きましたように私の場合は、 ご指示くださったように 「まずは変数に入れたほうが良い」という点が できていなかったので、困っています。 最終的には必要なcodeだけ取り出して 別につくりなおすことにします。 お返事遅れて失礼いたしました。 久保 道 -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Kazuhiro ABE Sent: Thursday, February 07, 2008 4:14 PM To: Squeak discussion in Japanese Subject: [Squeak-ja: 3816] Re: ループしているプロセスの停止について 阿部@新百合です。 いきなり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 [hidden email] No virus found in this incoming message. Checked by AVG. Version: 7.5.516 / Virus Database: 269.19.21/1267 - Release Date: 2008/02/08 20:12 No virus found in this outgoing message. Checked by AVG. Version: 7.5.516 / Virus Database: 269.20.5/1279 - Release Date: 2008/02/14 18:35 |
こんにちは
梅澤です。 すでにループしてしまっているイメージをなんとか救いたいということでしたら、 私であればまず、LineMorphのopenInWorldを一時的にoverrideします。 LineMorph>>openInWorld ^self その後で、ProcessBrowserを使ってプロセスを殺します。 Worldメニューのデバッグ->open process browserです。 優先度40のプロセスがおそらく2つ上がっていると思います。the UI processの ほうはMorphicのおおもとのループですから止めてはいけません。 Delayでwaitしながら進んでいるプロセスを選択してterminateさせます。 プロセスを殺した後で、LineMorphのopenInWorldを消しておけばよいでしょう。 ProcessBrowserについて詳しくは「自由自在」の12章です。 久保 道 <[hidden email]> wrote: > 阿部さん、さっそく教えていただいて、 > ありがとうございました。 > ただ、前回書きましたように私の場合は、 > ご指示くださったように > 「まずは変数に入れたほうが良い」という点が > できていなかったので、困っています。 > 最終的には必要なcodeだけ取り出して > 別につくりなおすことにします。 > お返事遅れて失礼いたしました。 > 久保 道 > -----Original Message----- > From: [hidden email] [mailto:[hidden email]] > On Behalf Of Kazuhiro ABE > Sent: Thursday, February 07, 2008 4:14 PM > To: Squeak discussion in Japanese > Subject: [Squeak-ja: 3816] Re: ループしているプロセスの停止について > > 阿部@新百合です。 > > いきなり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 [hidden email] > > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.516 / Virus Database: 269.19.21/1267 - Release Date: 2008/02/08 > 20:12 > > > No virus found in this outgoing message. > Checked by AVG. > Version: 7.5.516 / Virus Database: 269.20.5/1279 - Release Date: 2008/02/14 > 18:35 > --- [:masashi | ^umezawa] |
梅澤さん、ありがとうございました。
ご教示いただいたようにして、 すっかりきれいに消えました。 戯れに?processをさわって、 お手数をかけました。 おかげさまで、またSqueakの 奥深さを垣間見た気がして、 うれしいです。 久保 道 -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Masashi Umezawa Sent: Friday, February 15, 2008 1:53 PM To: Squeak discussion in Japanese Subject: [Squeak-ja: 3826] Re: ループしているプロセスの停止について こんにちは 梅澤です。 すでにループしてしまっているイメージをなんとか救いたいということでしたら、 私であればまず、LineMorphのopenInWorldを一時的にoverrideします。 LineMorph>>openInWorld ^self その後で、ProcessBrowserを使ってプロセスを殺します。 Worldメニューのデバッグ->open process browserです。 優先度40のプロセスがおそらく2つ上がっていると思います。the UI processの ほうはMorphicのおおもとのループですから止めてはいけません。 Delayでwaitしながら進んでいるプロセスを選択してterminateさせます。 プロセスを殺した後で、LineMorphのopenInWorldを消しておけばよいでしょう。 ProcessBrowserについて詳しくは「自由自在」の12章です。 久保 道 <[hidden email]> wrote: > 阿部さん、さっそく教えていただいて、 > ありがとうございました。 > ただ、前回書きましたように私の場合は、 > ご指示くださったように > 「まずは変数に入れたほうが良い」という点が > できていなかったので、困っています。 > 最終的には必要なcodeだけ取り出して > 別につくりなおすことにします。 > お返事遅れて失礼いたしました。 > 久保 道 > -----Original Message----- > From: [hidden email] > On Behalf Of Kazuhiro ABE > Sent: Thursday, February 07, 2008 4:14 PM > To: Squeak discussion in Japanese > Subject: [Squeak-ja: 3816] Re: ループしているプロセスの停止について > > 阿部@新百合です。 > > いきなり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 [hidden email] > > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.516 / Virus Database: 269.19.21/1267 - Release Date: > 20:12 > > > No virus found in this outgoing message. > Checked by AVG. > Version: 7.5.516 / Virus Database: 269.20.5/1279 - Release Date: 2008/02/14 > 18:35 > --- [:masashi | ^umezawa] No virus found in this incoming message. Checked by AVG. Version: 7.5.516 / Virus Database: 269.20.9/1292 - Release Date: 2008/02/21 16:09 No virus found in this outgoing message. Checked by AVG. Version: 7.5.516 / Virus Database: 269.20.9/1294 - Release Date: 2008/02/22 18:39 |
Free forum by Nabble | Edit this page |