teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/10/17 02:17

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -67,4 +67,18 @@
67
67
 
68
68
  今回の場合は、メインスレッドで tkinter のmainloop
69
69
  サブスレッドで独自に組んだイベントループですが、
70
- バックエンドが同じ tkitner の場合は、イベントループの競合となってしまいます。
70
+ バックエンドが同じ tkitner の場合は、イベントループの競合となってしまいます。
71
+
72
+ ----
73
+ 追記:
74
+
75
+ > 追記前よりクローズ処理は実装しておりましたので、GUIの直接操作が問題なのかな?でもGUI直接操作しているかな?と思い
76
+
77
+ 正確には、別スレッドから直接操作してることにより、
78
+ メインスレッド終了後(GUIが破棄された後)に、
79
+ 破棄済みのリソースに対してのアクセスが発生する点です。
80
+
81
+ Tkinterは内部でもスレッドを用いてtcl/tk のGUIとやり取りを行っているため、
82
+ 別スレッドからの操作自体は問題有りませんが、プログラムの構造として、
83
+ 別スレッドからの操作があると、GUIのライフサイクルとスレッドのライフサイクルが異なり、
84
+ 質問のエラーとなります。