タイマーを止められない

5月 27th, 2017

タイマーを実装したまでは良かった・・・が。

実際に使ってみると、「タイマーを開始したけど止めたいゾ」ということがままある。

というわけで、止める方法を探したのだが・・・

このタイマーは、「threading」を使って別スレッドを走らせている。

じゃ、別スレッド止めるか破棄すればいいじゃん。

そう単純に考えていた。

ところが。

「現状では、優先度 (priority)やスレッドグループがなく、スレッドの破壊 (destroy)、中断 (stop)、一時停止 (suspend)、復帰 (resume)、割り込み (interrupt) は行えません。」(Python 3.6.1ドキュメントより)

うそん・・・

あの手この手でなんとかしようともがいてみた。threading.timerを使うのではなく、単にカウントにしておいて、キーボードからの入力によって反応するようにとか。

上記手法は、一回目は上手く行ったけど、一回しかやらせてもらえなかった。まあ、スレッドの破壊・復帰はできませーん、とあるんだからそうなんだけど。「run()」は一回しか呼び出せない仕様なのだ。うう。

1秒ごとに信号チェックをして動作して行けば、見た目的にはきちんと動いているように見えるはずだけど…

大体っ、そもそもっ、inputがいつまででも入力待ちでぼけーっとしているのが悪い(←八つ当たり)。

後は、別個のプログラムにして操作、くらいかなあ…しかしpythonのプログラムから別プログラムへ信号を送る方法が分からない。ファイルに書き込めば、データを受け渡しできるけど…別プログラムは、1秒ごとにそれをチェックして、合図を取り込む。できれば直でやりとりしたいところ。

…何かとっても危険な香りがする。まあWebのチャットcgiいじった時は、アクセスするたびに毎回ファイルを開いちゃ読み、開いちゃ読みしてたけど。

python機能の限界に時々頭がぶつかるようになった今日この頃。でも、そこをなんとかできないのは、私の能力が低いからなんだよな…うう。やりたいことは単純なんだから、何か道があるに違いない・・・

関連記事

  1. チャットにタイマーを実装するには

Comments are closed.