关于MFC框架下的多线程
2011-06-21 18:27
211 查看
CWinThread 以及CWinThread 派生的类,对应的每个对象等同于一个线程(有且仅有一个)。该类的InitInstance 和 ExitInstance 只会被调用一次。
通过该类或者派生类创建的线程区别在于,该线程比较特殊具有消息循环。因此你能够在其他线程里面通过PostThreadMessage的方式给线程发消息。从而达到控制或者间接调用该类的函数的作用。改类或派生类建立的线程,工作流程可以理解为:在线程内部循环的去获取消息队列的消息,并根据消息去执行相应的动作。该线程要退出实质是退出消息循环。只需要在其他线程给该线程PostThreadMessage一个WM_QUIT消息即可。
给该方式产生的线程赋值相对的比较方便。我们只需要new一个该派生类(注意,将构造函数移动到public区域),然后调用它的成员函数赋值。最后,调用CWinThread 的CreateThread建立起线程。内部的InitInstance 如果返回的是TRUE,则会自动建立消息循环。然后我们和该线程的通信,一般的通过消息进行即可。相关代码摘要
通过该类或者派生类创建的线程区别在于,该线程比较特殊具有消息循环。因此你能够在其他线程里面通过PostThreadMessage的方式给线程发消息。从而达到控制或者间接调用该类的函数的作用。改类或派生类建立的线程,工作流程可以理解为:在线程内部循环的去获取消息队列的消息,并根据消息去执行相应的动作。该线程要退出实质是退出消息循环。只需要在其他线程给该线程PostThreadMessage一个WM_QUIT消息即可。
给该方式产生的线程赋值相对的比较方便。我们只需要new一个该派生类(注意,将构造函数移动到public区域),然后调用它的成员函数赋值。最后,调用CWinThread 的CreateThread建立起线程。内部的InitInstance 如果返回的是TRUE,则会自动建立消息循环。然后我们和该线程的通信,一般的通过消息进行即可。相关代码摘要
相关文章推荐
- MFC Qt 关于图形界面框架
- 【框架-MFC】关于CDialogBar中CButton(状态为灰色)不可用
- 关于MFC框架程序中CWinApp::OnIdle
- C++ 关于MFC多线程编程的注意事项
- 关于MFC框架程序中CWinApp::OnIdle
- 关于mfc下多线程socket出错
- 关于MFC使用和多线程随笔--对初学者可能有点作用
- CWinThread线程派生类MFC多线程框架
- 关于PHP-Zend framework2 框架 学习过程。 阅前须知: ZF2中的配置文件是可以静态文件配置来注册和通过相关函数动态注册。 1.EventManager(事件驱动),关于事件驱动,在ZF2相关资料没有详细说明,可以参考ANDROID的事件驱动,MFC的消息响应/事件驱动。
- 关于MFC下多线程,在线程中创建非模态对话框以及消息传递
- 关于多线程中传递MFC窗口类指针时ASSERT_VALID出错的另类解决
- 【框架-MFC】关于CFileDialog保存文件获取扩展名(后缀名)
- 关于如何在MFC框架里面显示多个数据总结
- 关于多线程中传递MFC窗口类指针时ASSERT_VALID出错的另类解决 .
- MFC关于多线程中传递窗口类指针时ASSERT_VALID出错的另类解决 转
- 关于MFC程序的换肤问题
- 关于MFC的运行流程
- 关于集合框架的思考
- MFC-CObject关于消息映射
- eventsystem源码分析 多线程框架