回答編集履歴

1 追記

can110

can110 score 23272

2018/12/20 16:16  投稿

`count`関数は内部に処理ループを持っていないので、スレッド関数にする意味合いがありません。また、ループ内で毎回スレッド生成する必要もありません。
目的の動作をするためには単純に以下でよいと思います。
時間のかかる処理をさせつつボタンを反応させるには、単純に以下でよいです。
```Python
   # 略
   def on_run(self):
       self.stop_fg=False
       while self.stop_fg!=True:
           #threading.Thread(target=self.count).start() # 毎ループスレッドを生成している!
           self.count()
   def count(self):
   # 略
```
       self.Label001["text"]=self.frame
       self.frame=self.frame+1
       time.sleep(1) # 時間のかかる処理
```
なお、スレッドを用いても、もともと時間のかかる直列的に行っている処理(画像撮影→解析→保存など)を短縮することは原理的にできません。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る