2007年 01月 03日

rubyclr スレッド

もしかして ruby のスレッド使えない疑惑
あーいっかい run に入るとスレッドスイッチおこらない。だめだ。ここでゲームオーバー。drb 使えないんじゃ意味がない。

ふと思いついて、Timer を配置して

# threadTimer という名前で配置。Interval は 10 で、最初から Enable を true にしてある。
form.threadTimer.Tick do |sender, arg|
    Thread.pass
end

したらスイッチした。いけるかも。単純なコードしか試してないけど……

あー。謎のエラーで終了することがある。無理かも……

TextBox が溢れてエラーになってただけっぽい。よくわからないけど、標準出力に出すようにしたら大丈夫になった。(時間を永遠表示させてる)

TextBox#Text= の処理の間にスレッドの割り込みが入ってまた TextBox#Text= が呼び出されると、もとのコンテキストに戻ったときにエラーになるのかな。そんな感じがするけどよくわからない

ちがうなぁ。p @form.chkHogehoge って参照しただけでも落ちる。何が悪いんだろう。回避方法あるのかなぁ。スレッド使うのは難しいようだ