У меня есть проблема с текстом wxpython и потоком. Поблагодарили бы за любую помощь в решении этой проблемы.wxpython threading textctrl delay
Моя программа обрабатывает файлы, так как и каждый файл обрабатывается, он указан в текстеctrl как готовый. При работе с несколькими файлами textctrl реагирует и отображает себя сразу и не исчезает. Даже если эти файлы большие. Был ли тест на файл 700mb и textctrl отлично работает.
Проблема возникает при работе во многих файлах, скажем, 20+ для exmaple. В этих условиях textctrl исчезает в течение 6 или 7 секунд, затем появляется снова и работает нормально.
Я пробовал обычную резьбу, демонную резьбу и т. Д. Также попробовал использовать .join(), который сделал вещи еще хуже. Мне интересно, если это только потому, что моя программа очень интенсивно работает с процессором, или если я просто делаю что-то неправильно.
Ниже представлена моя строка строки кода. Пока это самый быстрый способ, просто недостаточно для моих целей. Спасибо заранее, Клинтон.
def Worker(self, e, _file):
match = ''
with open(_file, 'r') as f:
data = f.read()
for char in data:
if char in self.key:
match += chr(self.key.index(char))
open(_file, 'w').close()
with open(_file, 'w') as f:
f.write(match)
wx.CallAfter(self.ListFilesEncrypt, e, _file)
if __name__ == '__main__':
for _file in self.file2process:
self.filenum += 1
Thread(target=self.Worker, args=(e, _file,)).start()
Как вы обновляете текстовое управление из потока?Если вы вызываете текстовый элемент управления напрямую, у вас есть проблема –
Вы утверждаете, что создаете несколько потоков, которые могут обновлять текстовое управление, возможно, сразу? –
Честно говоря, я не знаю, как новый для питона и программирования. Приведенный выше код работает, но когда много файлов выбрано для обработки, textctrl исчезает в течение 6 секунд, а затем снова появляется. Как только он снова появится, он работает так, как должен. По мере обработки каждого файла он печатается в textctrl. Таким образом, вывод textctrl похож на вывод команды linux ls. Как только печать начинается, он работает нормально, его просто эта интуитивная досадная задержка. –