- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【IT书籍】使用 C++ 和 MFC 进行多线程编程.docx
使用 C++ 和 MFC 进行多线程编程Visual Studio 2005 javascript:;其他版本 /zh-cn/library/975t8ks0(v=VS.100).aspx/zh-cn/library/975t8ks0(v=VS.90).aspxMicrosoft 基础类 (MFC) 库提供多线程应用程序支持。本主题描述进程、线程和 MFC 多线程编程方法。进程是应用程序的执行实例。例如,双击“记事本”图标时,将启动运行“记事本”的进程。线程是进程内的执行路径。启动“记事本”时,操作系统创建进程并开始执行该进程的主线程。此线程终止时,进程也终止。启动代码以函数地址的形式将此主线程提供给操作系统。通常是所提供的 main 函数或 WinMain 函数的地址。如果愿意,可以在应用程序中创建其他线程。如果在处理后台任务或维护任务时不希望用户等待这些任务完成,则可能需要创建其他线程。MFC 应用程序中的所有线程都由 /zh-cn/library/48xz4yz9(v=vs.80).aspxCWinThread 对象表示。大多数情况下,甚至不必显式创建这些对象,而只需调用框架 Helper 函数 /zh-cn/library/s3w9x78e(v=vs.80).aspxAfxBeginThread,该函数将为您创建 CWinThread 对象。MFC 区分两种类型的线程:用户界面线程和辅助线程。用户界面线程通常用于处理用户输入及响应用户生成的事件和消息。辅助线程通常用于完成不需要用户输入的任务(如重新计算)。Win32 API 不区分线程类型;它只需要了解线程的起始地址以开始执行线程。MFC 为用户界面中的事件提供消息泵,从而对用户界面线程进行专门处理。CWinApp 是用户界面线程对象的一个示例,因为它从 CWinThread 派生并对用户生成的事件和消息进行处理。应特别注意以下情况:可能有不止一个线程需要访问同一对象。/zh-cn/library/h14y172e(v=vs.80).aspx多线程编程:编程提示 介绍了一些可以避免在这些情况下可能发生的问题的技术。/zh-cn/library/thdxkfx9(v=vs.80).aspx多线程编程:如何使用同步类说明如何使用可用的类从多个线程同步访问一个对象。编写和调试多线程编程本身是一项复杂棘手的任务,因为您必须确保一次只能有一个线程访问对象。多线程编程主题没有讲述多线程编程的基础知识,而只是说明了如何在多线程程序中使用 MFC。Visual C++ 中包含的多线程 MFC 示例阐释了几种多线程“添加功能”和 MFC 中未包含的 Win32 API,但只是一些入门知识。有关操作系统如何处理进程和线程的更多信息,请参见 Platform SDK 中的/zh-cn/library/ms684841(v=vs.80).aspx进程和线程。多线程处理:创建用户界面线程Visual Studio 2005 javascript:;其他版本 /zh-cn/library/b807sta6(v=VS.100).aspx/zh-cn/library/b807sta6(v=VS.90).aspx用户界面线程通常用于处理用户输入和响应用户事件,这些行为独立于执行该应用程序其他部分的线程。已经创建并启动主应用程序线程(在 CWinApp 导出的类中提供)。本文描述创建其他用户界面线程所需的步骤。创建用户界面线程时,必须首先从 /zh-cn/library/48xz4yz9(v=VS.80).aspxCWinThread 派生类。必须使用 /zh-cn/library/56302tyt(v=VS.80).aspxDECLARE_DYNCREATE 和 /zh-cn/library/5fsfk9dy(v=VS.80).aspxIMPLEMENT_DYNCREATE 宏声明并实现此类。此类必须重写某些函数,也可以重写其他函数。下表列出了这些函数及其用途。创建用户界面线程时要重写的函数函数 用途 /zh-cn/library/1afc1fkh(v=VS.80).aspxExitInstance 线程终止时执行清除。通常重写。/zh-cn/library/b5k7zxtw(v=VS.80).aspxInitInstance 执行线程实例初始化。必须重写。/zh-cn/library/1sa2f19f(v=VS.80).aspxOnIdle 执行线程特定的闲置时间处理。通常不重写。/zh-cn/library/67d74wsy(v=VS.80).aspxPreTranslateMessage 将消息调度到 TranslateMessage 和 DispatchMessage 之前对其进行筛选。通常不
您可能关注的文档
- 变电所的继电保护.doc
- 第1章概述--矿山供电的基本要求.doc
- 第2章负荷分析和主变压器的选择.doc
- 第3章:电气主接线的设计.doc
- 第4章.短路电流的计算.doc
- 第5章:电气设备的选择.doc
- 第6章:电缆的选择与敷设.doc
- 第8章:变电所的平面布置.doc
- 电缆选择结果.doc
- 电气设备选择结果.doc
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
文档评论(0)