下载此文档

MFC线程汇总PPT学习教案.pptx


文档分类:IT计算机 | 页数:约32页 举报非法文档有奖
1/32
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/32 下载此文档
文档列表 文档介绍
会计学
1
MFC线程汇总
一、MFC 支持的两种线程:
1. 用户界面线程
通常用于处理用户输入及响应用户生成的事件和消息,并独立地相应正在应用程序其他部分执行的线程产生的消息和时间,并包含一个消息泵(a Message Pump)。用户界面线程包含一个消息处理的循环,以应对各种事件。
第1页/共32页
对于用户来说工作线程运行在后台。这就使得工作线程特别适合去等待一个事件的发生。
2. 工作线程
工作线程适用于处理那些不要求用户输入并且比较消耗时间的其 他任务(如大规模的重复计算,网络数据的发送与接受)。
第2页/共32页
注意:
在MFC应用程序中,所有的线程都是由CWinThread对象来表示的;
CWinThread是用户接口线程的基类,CWinApp就是CWinThread派生出来的,在编写用户接口线程时,也需要从CWinThread 类派生出自己的线程类;
CWinThread同样是工作线程的基类,但在编写工作线程的时候,升值不必刻意地从CWinThread类派生出自己的线程类对象。用户可以调用MFC框架的AfxBeginThread帮助函数,会创建CWinThread对象。
在Win32API中不区分两种线程,它只需要知道线程的起始地址,就可以开始执行线程。
第3页/共32页

(1).编程实现控制函数
一个工作线程对应一个控制函数。线程执行的任务都应编写在控制函数之中。编写实现工作线程的控制函数是创建工作线程的第一步。
控制函数的原型声明是:UNIT ControlFunctionName(LPVOID pParam);
其中,
UNIT ControlFunctionName:是控制函数的名字,自定。
参数pParam:是一个32位指针值,是启动工作线程时,有调用的AfxBeginThread()函数传递给工作线程的控制函数的。这个值既可以是指向简单数据类型的指针,用来传递int之类的数值,也可是是指向包含了许多参数的结构体或其他对象的指针;甚至可以忽略它。
第4页/共32页
(2).创建并启动工作线程
在进程的主线程或其他线程中调用AfxBeginThread()函数就可以创建新的线程,并使线程开始运行。
AfxBeginThread()函数是MFC提供的帮助函数,有两个重载版本,区别在于使用的入口参数不同。一个用于创建并启动用户接口线程,一个用于创建并启动工作线程。
要创建并启动工作线程,必须采用如下的调用格式:
CWinThread* AfxBeginThread(
AFX_THREADPROC pfnThreadProc,
LPVOID pParam,
int nPriority = THREAD_PRIORITY_NORMAL,
UINT nStackSize = 0,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
第5页/共32页
参数pfnThreadProc:是一个指向工作线程的控制函数的指针,即控制函数的地址。创建工作线程是必须指定将在此线程内部运行的控制函数。
参数pParam:是一个指向某种类型的数据结构指针,执行本函数时,将把这个指针进一步传递给此线程的控制函数,使之成为线程控制函数的入口参数。
参数nPriority:通常设为0。
参数nStackSize:通常设为0。
参数dwCreateFlags :通常设为0。
参数dwCreateFlags :通常设为0。
参数lpSecurityAttrs:通常设为NULL。
第6页/共32页
(3)创建工作线程的例子
struct {
int n;
double* pD;
}myData;
myData ss;//定义了该类型的变量,对该变量的初始化的代码省略了
UNIT MyCalcFunc(LPVOID pParam)
{
//如果入口函数为空指针,终止线程
if( pParam==NULL) AfxEndThread(MY_NULL_POINTTER_ERROR);
int n=pParam->n; //数组元素个数;
double* pD=pParam->pD; //指向数组的第一个元素;
double sum=0; //数组元素之和;

MFC线程汇总PPT学习教案 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数32
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小456 KB
  • 时间2021-06-14