У меня есть некоторый Python-код Python, который загружает набор файлов.Я использую multiprocessing.dummy, в качестве оболочки для потоков, использую apply_async для одновременной загрузки.Из своей многопоточной функции я хочу обновить индикатор выполнения в главном графическом интерфейсе, но когда я делаю это, QT выбирает подключение к очереди для сигнала, и запускается функция в главном потоке, который воспроизводит загруженные файлы (загруженные файлы), а затем внезапно обновляется индикатор выполнения, сообщающий о файлах как о загружаемых, даже если они были загружены некоторое время назад.
Если я создаю сигнал с помощью Qt.DirectConnection, я получаю желаемое поведениено после загрузки файлов я получаю segfault, и основной поток завершает работу.Я уверен, что должен быть какой-то способ решения этой проблемы, поскольку это не является необычной задачей, но, попробовав мьютексы, сигналы к сигналам и ряд других попыток, я почти вырываю волосы.Я уверен, что ответ очевиден.
Я читал другие ответы здесь, для подобных проблем, но нет ничего особенно просветляющего.
PyQt5 Сигналы и Threading
предлагает подключиться изнутри созданного потока, но я не хочу пробовать это, так как поток создан в классе, который объединен в пользовательский объект в основном потоке, и я действительно не хочупередать ссылку вниз по иерархии.Если мне нужно, я полагаю, но я попытался вместо этого подключить сигнал внутри поточной функции для вызова метода внутри класса, который затем вызвал сигнал, но безуспешно, только те же результаты.
Большое спасибо заранее.