PyQt/QThread/README.md
2020-11-27 11:33:28 +08:00

1.3 KiB
Raw Blame History

QThread

1、继承QThread

运行 InheritQThread.py

InheritQThread

2、moveToThread

运行 moveToThread.py

moveToThread

3、线程挂起恢复

运行 SuspendThread.py

注意,这里只是简单演示,在应用这些代码时要小心

  1. 这里使用windows的api实现主要用到SuspendThreadResumeThread函数
  2. 利用ctypes.windll.kernel32.OpenThread(win32con.PROCESS_ALL_ACCESS, False, int(QThread.currentThreadId()))
  3. 得到线程的句柄,然后就可以通过上面的两个函数对其进行挂起与恢复

ctypes.windll.kernel32.TerminateThread终止线程,不推荐

SuspendThread

4、线程休眠唤醒

运行 WakeupThread.py

使用 QWaitConditionwaitwakeAll 方法

WakeupThread

5、线程退出

运行 QuitThread.py

isInterruptionRequestedrequestInterruption 函数作为退出标识调用

QuitThread