回答編集履歴
3
誤字修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
どのような処理の関数を停止したいのかは解りませんが、
|
2
2
|
|
3
|
-
スレッド自体は一旦止めるという
|
3
|
+
スレッド自体は一旦止めるという操作を出来ないので、
|
4
4
|
|
5
5
|
自身で関数をそのように実装する必要があります。
|
6
6
|
|
2
エラー原因について
test
CHANGED
@@ -15,3 +15,21 @@
|
|
15
15
|
サンプルコード: [Teratail 261628](https://teratail.com/questions/261628) スレッドで停止・再開する場合のサンプル
|
16
16
|
|
17
17
|
[Demo](https://repl.it/@MiKLTea/TkThreadResumeDemo)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
----
|
22
|
+
|
23
|
+
追記: エラーの原因
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
「RuntimeError: threads can only be started once」
|
28
|
+
|
29
|
+
と書かれているように、スレッドの誤用です。
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
[スレッドベースの並列処理](https://docs.python.org/ja/3/library/threading.html)
|
34
|
+
|
35
|
+
> start() このメソッドは、スレッドオブジェクトあたり一度しか呼び出してはなりません。
|
1
「一旦止める」→処理を再開をしたい場合は、future.cancel()は適切でなかったので削除
test
CHANGED
@@ -5,8 +5,6 @@
|
|
5
5
|
自身で関数をそのように実装する必要があります。
|
6
6
|
|
7
7
|
|
8
|
-
|
9
|
-
- concurrentモジュールであれば、Futureオブジェクトのcancel()
|
10
8
|
|
11
9
|
- 通常のスレッド内の「ループ処理」であれば、threading.Event が使えます
|
12
10
|
|