文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > IT/计算机 > 计算机软件及应用 > MFC 多线程及线程同步
侵权投诉

MFC 多线程及线程同步

MFC 多线程编程及多线程的同步

MFC 多线程及线程同步

一、MFC对多线程编程的支持

MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。

工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来执行任务。

在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户界面线程。两种重载函数原型和参数分别说明如下:

(1) CWinThread* AfxBeginThread(

AFX_THREADPROC pfnThreadProc,

LPVOID pParam,

int nPriority = THREAD_PRIORITY_NORMAL,

UNT nStackSize = 0,

DWORD dwCreateFlags = 0,

LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL

);//用于创建工作者线程

PfnThreadProc:指向工作者线程的执行函数的指针,线程函数原型必须声明如下: UINT ExecutingFunction(LPVOID pParam);

请注意,ExecutingFunction()应返回一个UINT类型的值,用以指明该函数结束的原因。一般情况下,返回0表明执行成功。

pParam: 一个32位参数,执行函数将用某种方式解释该值。它可以是数值,或是指向一个结构的指针,甚至可以被忽略; nPriority: 线程的优先级。如果为0,则线程与其父线程具有相同的优先级; nStackSize: 线程为自己分配堆栈的大小,其单位为字节。如果nStackSize被设为0,则线程的堆栈被设置成与父线程堆栈相同大小; dwCreateFlags:如果为0,则线程在创建后立刻开始执行。如果为CREATE_SUSPEND,则线程在创建后立刻被挂起; lpSecurityAttrs:线程的安全属性指针,一般为NULL;

(2) CWinThread* AfxBeginThread(

CRuntimeClass* pThreadClass,

int nPriority = THREAD_PRIORITY_NORMAL,

UNT nStackSize = 0,

DWORD dwCreateFlags = 0,

第1页

你可能喜欢

热门文档

相关文档

  • 【论文】MFC多线程同步类的使用

    MFC多线程同步类的使用_专业资料。本文首先介绍了线程的基本知识,然后讨论了MFC中临界区、互斥量、信号量和事件几种同步对象和同步访问对象的用法,并举出实例以说明...

  • MFC 多线程及线程同步 - 赵情融 - 博客园

    24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 MFC 多线程及线程同步一、 MFC 对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程...

  • 【译】剖析MFC多线程程序的同步机制

    【译】剖析MFC多线程程序的同步机制【译】剖析MFC多线程程序的同步机制隐藏>> 【译】剖析 MFC 多线程程序的同步机制 原文链接:Synchronization in Multithreaded Appli...

  • 如何利用MFC实现线程间的同步

    , 2001 如何利用 MFC 实现线程间的同步刘 勇 ( 海军潜艇学院 核潜艇系, 山东 青岛 266071) 摘要: 利用 MFC 提供的几个线程同步对象类, 编写了几个线程安全...

  • MFC多线程用事件_EVENT_同步的探讨

    MFC多线程用事件_EVENT_同步的探讨_计算机软件及应用_IT/计算机_专业资料。事件 压盯 是 中多线程程序 同 步的 重要 手茂人 工 重设 事件和 自动 重设事件...

  • 多线程同步方法及比较

    同步多个进程中的线程 MFC 为临界区提供有一个 CCriticalSection 类,使用该类进行线程同步处理是很简单 的。只需在线程函数中用 CCriticalSection 类成员函数 Lock()...

  • 基于MFC的多线程编程技术

    基于MFC的多线程编程技术_工学_高等教育_教育专区。基于 MFC 的多线程编程技术杨...4.2.1 使用临界区对象(criticalSection)进行线程同步 使用临界区对象进行线程...

  • Windows的多线程同步实验报告

    完成基本控件的使用 2.结合操作系统中信号量与互斥体的概念,在 MFC 中找到对应的相关类 3.设计一个多线程同步的程序, 多线程概述 进程和线程都是操作系统的概念...

  • 用MFC编写多线程程序实例

    在本例中使用了三种MFC类:CMutex、CSingleLock和CMultiLock来同步多个线程对一个数据类的同时访问。 具体步骤: 首先我们要先在线程中确定共享的数据类。在每个类定义...

站点地图 | 文档上传 | 侵权投诉 | 手机版
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.guandang.net All Rights Reserved.  -  email