- Создание подкласса QThread: написание логики непосредственно внутри QThread подкласс.
- Создание подкласса QObject и использование moveToThread: инкапсуляция логики в QObject и использование QThread для его запуска.
- Создать надежную настройку и демонтаж потоков в тестах сложно, поскольку это требует тщательного жизненного цикла. управление.
- Отладка ошибок в многопоточной логике затруднительна, а некоторые ошибки являются критическими, но их трудно воспроизвести.
- Трудно проверить, является ли логика фактически выполняется в предполагаемом изолированном потоке или по ошибке в основном потоке.
Как лучше всего использовать QThreads в современных приложениях PyQt? Как я могу спроектировать свой код таким образом, чтобы:
- отличал бизнес-логику от потоков?
- упрощал логику тестировать изолированно (не полагаясь на потоки во время тестирования)?
- Соответствует современным шаблонам проектирования при разработке PyQt?
Подробнее здесь: https://stackoverflow.com/questions/792 ... not-a-cont
Мобильная версия