python调试解决tkinter退出窗口后主线程不结束的问题

tkinter关闭窗口后程序并未退出:检查这时共有7个线程。

threading.active_count()
7
threading.current_thread()
<_MainThread(MainThread, started 140695305631552)>
threading.enumerate()
[<_MainThread(MainThr...05631552)>, <WriterThread(pydevd...75284224)>, <ReaderThread(pydevd...66891520)>, <_TimeoutThread(Thre...58498816)>, <PyDBCommandThread(p...49843968)>, <CheckAliveThread(py...41451264)>, <Thread(Thread-7, st...61450496)>]
special variables:
function variables:
0: <_MainThread(MainThread, started 140695305631552)>
1: <WriterThread(pydevd.Writer, started daemon 140695275284224)>
2: <ReaderThread(pydevd.Reader, started daemon 140695266891520)>
3: <_TimeoutThread(Thread-4, started daemon 140695258498816)>
4: <PyDBCommandThread(pydevd.CommandThread, started daemon 140695249843968)>
5: <CheckAliveThread(pydevd.CheckAliveThread, started 140695241451264)>
6: <Thread(Thread-7, started 140692661450496)>
special variables:
function variables:
additional_info: <_pydevd_bundle.pydevd_cython.PyDBAdditionalThreadInfo object at 0x7ff590656580>
daemon: False
ident: 140692661450496
name: 'Thread-7'
native_id: 6254
stop_reason: 105
_args: ()
_bootstrap: <bound method Thread._bootstrap of <Thread(Thread-7, started 140692661450496)>>
_bootstrap_inner: <bound method Thread._bootstrap_inner of <Thread(Thread-7, started 140692661450496)>>
_daemonic: False
_delete: <bound method Thread._delete of <Thread(Thread-7, started 140692661450496)>>
_ident: 140692661450496
_initialized: True
_invoke_excepthook: <function _make_invoke_excepthook.<locals>.invoke_excepthook at 0x7ff590404a60>
_is_stopped: False
_kwargs: {}
_name: 'Thread-7'
_native_id: 6254
_reset_internal_locks: <bound method Thread._reset_internal_locks of <Thread(Thread-7, started 140692661450496)>>
_set_ident: <bound method Thread._set_ident of <Thread(Thread-7, started 140692661450496)>>
_set_native_id: <bound method Thread._set_native_id of <Thread(Thread-7, started 140692661450496)>>
_set_tstate_lock: <bound method Thread._set_tstate_lock of <Thread(Thread-7, started 140692661450496)>>
_started: <threading.Event object at 0x7ff590413250>
_stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>
_stop: <bound method Thread._stop of <Thread(Thread-7, started 140692661450496)>>
_target: <bound method TrainGUI.printTrainLog of <__main__.TrainGUI object .>>
_tstate_lock: <locked _thread.lock object at 0x7ff6284e9cc0>
_wait_for_tstate_lock: <bound method Thread._wait_for_tstate_lock of <Thread(Thread-7, started 140692661450496)>>
len(): 7

在tkinter退出窗口后,走完最后一条程序代码,发现终端并没有退出,仍在运行,这时在vs code的调试模式下点暂停,
在这里插入图片描述
发现他在调用这个函数!我回头去看,发现这个函数有while True,我单独给他设置了一个线程,这显然会导致他无限运行下去。
改完后正常了。
启示:tkinter没有问题,找自己代码的原因。每次运行风扇都嗡嗡叫,早应该意识到这点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值