c语言mfc多线程编程,使用 C++ 和 MFC 进行多线程编程

使用 C++ 和 MFC 进行多线程编程

08/27/2018

本文内容

Microsoft 基础类 (MFC) 库为多线程应用程序提供支持。 本主题介绍进程和线程以及用于多线程处理的 MFC 方法。

进程是应用程序的执行实例。 例如,双击记事本图标时,将启动一个运行记事本的进程。

线程是进程内的执行路径。 启动记事本时,操作系统会创建一个进程,并开始执行该进程的主线程。 此线程终止时,会执行此过程。 通过启动代码以函数地址的形式向操作系统提供此主线程。 通常,它是所 main 提供的或函数的地址 WinMain 。

如果需要,可以在应用程序中创建其他线程。 当您不希望用户等待完成时,您可能希望执行此操作来处理后台或维护任务。 MFC 应用程序中的所有线程都由 CWinThread 对象表示。 在大多数情况下,你甚至不必显式创建这些对象。改为调用框架 helper 函数 AfxBeginThread,该函数将创建 CWinThread 对象。

MFC 区分两种类型的线程:用户界面线程和工作线程。 用户界面线程通常用于处理用户输入并响应用户生成的事件和消息。 工作线程通常用于完成无需用户输入的任务(例如重新计算)。 Win32 API 不区分线程类型;只需知道线程的起始地址,就可以开始执行线程。 MFC 通过为用户界面中的事件提供消息泵来专门处理用户界面线程。 CWinApp 是用户界面线程对象的一个示例,因为它派生自 CWinThread 并处理用户生成的事件和消息。

在多个线程可能需要访问同一对象的情况下,应特别注意。 多线程处理:编程提示 介绍了可用于解决在这种情况下可能出现的问题的技术。 多线程处理:如何使用同步类 介绍如何使用可用于同步从多个线程访问单个对象的类。

编写和调试多线程编程本质上是一项复杂而棘手的任务,因为必须确保一次不会有多个线程访问对象。 多线程处理主题并不介绍多线程编程的基本知识,只是如何在多线程程序中使用 MFC。 Visual C++ 中包含的多线程 MFC 示例演示了 MFC 不包含的多线程添加功能和 Win32 Api;但是,它们只是一个开始点。

有关操作系统如何处理进程和线程的详细信息,请参阅 Windows SDK 中的 进程和线程 。

有关 MFC 多线程支持的详细信息,请参阅以下主题:

请参阅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值