• VC如何对新创建的一个线程暂停或重启


    执行AfxBeginThread()函数时,如果成功则返回一个指向新线程对象的CWinThread指针,否则为NULL。就是说它会new一个CWinThread对象,而这个对象在线程运行结束时是会自动删除的。

    这样只要得到这一新线程的指针,我们就可以对新线程进行操作了。

    向对话框类里面添加一个CWinThread* mythread 的成员变量,不用初始化为NULL,这样会报错的,因为它只能通过AfxBeginThread函数获得。
    然后添加一个 pause 按钮向其响应函数里面添加代码 mythread->SuspendThread();   再添加一个 resume按钮,向其响应函数里面添加 mythread->ResumeThread();

    要结束一个线程可以在线程内调用AfxEndThread将会直接结束线程,此时线程的一切资源都会被回收。注意在线程中使用了CString类,则不能用AfxEndThread来进行结束线程,会有内存泄漏,只有当程序结束时,会在输出窗口有提示多少byte泄漏了。因为Cstring的回收有其自己的机制。建议在AfxEndThread之前先进行return。


    版权声明:

  • 相关阅读:
    开启gpu加速的高性能移动端相框组件!
    一看就懂得移动端rem布局、rem如何换算
    加密算法
    YDNKJS 笔记
    JavaScript函数
    测试下
    console前端代码自动删除QQ空间我的说说
    前端规范
    解决方案
    重读js高程笔记二
  • 原文地址:https://www.cnblogs.com/walccott/p/4957111.html
Copyright © 2020-2023  润新知