#python #python-3.x #python-multithreading
#python #python-3.x #python-многопоточность
Вопрос:
У меня есть многопоточное приложение Python, которое запускает поток в 1 функции
global eventthread
def StartEventCollection(server, port, filtercommand):
eventthread = threading.Thread(target=ProcessEvents, args=("EventThread", 0)).start()
Теперь у меня есть другая функция, в которой я сталкиваюсь с ошибкой и хочу закрыть поток
def StopEventCollection():
eventthread.join()
Мой код не работает, потому что моя 2-я функция не может найти eventthread, определенный в функции 1.
Как я могу сделать eventthread глобальным?
Комментарии:
1. используйте
global
ключевое слово2. Пожалуйста, создайте минимальный рабочий пример проблемы!
3. Пытался объявить переменную eventthread как глобальную, но, похоже, не помогает
Ответ №1:
Проблема решена следующим изменением:- def StartEventCollection(server, port, filtercommand): global eventthread eventthread = threading.Thread(target=ProcessEvents, args=("EventThread", 0)).start()