170 похожих чатов

Как при закрытие окна программы (tkinter) правильно закрыть тред с

циклом while true? А то он как-то с ругатеьством просто вываливается, что интерфейса к которому он обращается уже нет)

10 ответов

23 просмотра

Вроде в ткинтере while True не используется, там mainloop() пишешь и всё

Ilia-Nemtsev Автор вопроса
Shrek FALSE
Вроде в ткинтере while True не используется, там m...

У меня интерфейс с фоновым процессом, фоновый процесс сделан через threading, собственно где реализован фоновый процесс с переодическим обновлением части интерфейса, не очень понял к чему тут сейчас о mainloop

Так же как и в любой другой многопоточной программе. Выставляешь флаг потоку, который он периодически проверяет, тот проверяет его и завершается, в другом потоке ждешь его завершения.

Ilia Nemtsev
У меня интерфейс с фоновым процессом, фоновый проц...

Может сделать там не while True, а while not stopped, а на закрытие окна повесить stopped = True? Но не уверен что в многопоточном нормально сработает

Ilia-Nemtsev Автор вопроса
Alex
Так же как и в любой другой многопоточной программ...

т.е. в моём случае смотреть статус мейнлупа выходит?

Чо блин?

Ну собственно так это и работает в многопоточном коде. Ты описал примерно то же что и я.

Alex
Ну собственно так это и работает в многопоточном к...

А в каком смысле в конце "ждёшь его завершения"? Мейнлуп должен по событию закрытия окна не только выставлять этот флаг но и ожидать фоновый поток? (И как конкретно это сделать и зачем собственно нужно его ожидать)

Сергей
А в каком смысле в конце "ждёшь его завершения"? М...

Ждать чтобы он корректно завершился. Иначе у тебя есть два варианта: 1. Если поток по каким-то причинам не успел завершиться, но у него daemon=True, он вываливается в случайном месте, со всеми вытекающими последствиями. 2. Если поток использует разделяемое состояние и обращается к объектам, которые могли быть инвалидированы завершением основного потока, получишь закономерный исход. А ждать поток нужно при помощи thread.join

Ilia-Nemtsev Автор вопроса
Alex
Чо блин?

В общем разобрался, сделал, спасибо!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта