Каков наилучший способ использования потоков в приложении GUI python, если приложение должно в какой-то момент прочитать большой файл? Вероятно, будет 2 потока, 1 для GUI, 1 для чтения файла. Должен ли я создавать потоки при запуске приложения или создать поток «чтение файла», когда он должен прочитать файл?Как создать потоки в приложении GUI python?
ответ
Вопрос довольно расплывчатый, поскольку вы, вероятно, должны точно указать, в какую библиотеку gui вы ссылаетесь.
В большинстве графических интерфейсов я знаю, однако, что основной дизайн заключается в том, что только один поток (основной поток) должен иметь дело с графическим интерфейсом, и поэтому важно, чтобы другие потоки никогда не взаимодействовали напрямую с пользовательским интерфейсом. Единственное, что вам обычно разрешено делать из другого потока: post
- сообщение для основного цикла GUI.
Если, например, вам нужен прогресс, откройте окно прогресса в основном потоке, запустите поток читателя, который продолжает отправлять сообщения по мере продолжения чтения, а затем окончательное сообщение после завершения процедуры. Любое взаимодействие с интерфейсом должно выполняться в основном потоке при обработке этих сообщений (асинхронных сообщений).
Если, например, вам необходимо реализовать также кнопку отмены, тогда основной поток должен просто установить переменную для рабочего потока, чтобы заметить (для простого назначения переменных в Python защита от мутекса не требуется, поскольку назначение является атомной операцией) ,
Вы знаете, как создать поток по запросу (при необходимости) в python? – alwbtc
@alwbtc: у Python есть низкоуровневый модуль «thread» или модуль более высокого уровня «threading». Для использования потока просто требуется 'thread.start_new_thread (read_function, (filename,))' где 'def read_function (filename): ...' будет выполняться в отдельном потоке. Для более сложных взаимодействий и если вам нужны мьютексы, то использование 'threading', вероятно, является лучшим путем. – 6502
- 1. Как использовать потоки в Qt GUI
- 2. Как создать потоки под Python для Delphi
- 3. Запуск нового потока в приложении Gui python
- 4. Java-потоки в GUI с JMS
- 5. Как отобразить файл PostScript в приложении GUI Python
- 6. Как создать потоки в nodejs
- 7. Как создать потоки демона?
- 8. Как я могу отобразить PDF-файл в приложении GUI GUI?
- 9. Как использовать потоки в python
- 10. Как выполнить потоки в python?
- 11. Как использовать потоки в Python?
- 12. Сохранить загрузку в приложении gui
- 13. Как синхронизировать потоки python?
- 14. Различные потоки как сервер и клиент в одном приложении
- 15. Как создать потоки в среде Java EE?
- 16. Как использовать QWebPage в приложении без GUI
- 17. Tcl Channel в приложении GUI
- 18. Основные потоки в python
- 19. Как создать собственный Cura GUI?
- 20. Очистить потоки в python?
- 21. Как создать gui в C++
- 22. Направление реализации GUI Python
- 23. Могу ли я создавать потоки в приложении с помощью Python?
- 24. Параллельные потоки в Python
- 25. Как создать итеративные потоки повышения?
- 26. Как читать из терминального потока в приложении GUI GUI?
- 27. Как инициализировать массив с нулевым значением в приложении GUI GUI?
- 28. pdf-потоки в python
- 29. Python: Как использовать потоки в сети?
- 30. Как создать графическое GUI-приложение на основе HTML в Python?
Независимо от того, с кем вы больше всего уверены. Просто помните, что другие потоки не могут получить доступ к большинству графических интерфейсов. Попытка доступа к графическому интерфейсу из другого потока приведет к сбою графического интерфейса. Однако вы можете сделать это наоборот, графический интерфейс может легко получить доступ к любым данным в других потоках и использовать их до тех пор, пока вы обязательно заблокируете переменные и т. Д. – Torxed