分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

工作线程通常用来执行一些后台任务,如:数据计算、后台杀毒等等。因为不需要创建窗口和处理用户消息,编写比较容易,在程序中只要调用AfxBeginThread函数就可以创建并启动一个工作线程了。

AfxBeginThread的原型如下:

CWinThread *AfxBeginThread( 
    AFX_THREADPROC pfnThreadProc,                           //指向控制函数的地址 
    LPVOID pParam,                                                     //指向传递给控制函数的参数 
    int nPriority /* = THREAD_PRIORITY_NORMAL */,     //指定线程的优先级 
    UINT nStackSize /* = 0 */,                                      //指定堆栈大小 
    DWORD dwCreateFlags /* = 0 */,                            //创建标识 
    LPSECURITY_ATTRIBUTES lpSecurityAttrs /* = NULL */    //安全属性 
)

从上面参数可以看到,只有前两个参数是必须的,其余参数都使用默认的话,就可创建了一个具有普通优先级别的线程。

示例:编写一个应用程序,当在程序窗口按下鼠标左键,启动一个线程,该线程可以在屏幕上显示一个信息框。
1.新建单文档程序;
2.在视图类CPP文件添加一个准备作为线程的函数:

UINT MessageThread(LPVOID pParam) 

    LPTSTR    pMessage = (LPTSTR)pParam; 
    CWnd *pMainWnd = AfxGetMainWnd(); 
    ::MessageBox(pMainWnd->m_hWnd, pMessage, _T("Thread Message"), MB_OK); 
    return 0; 
}

3.在视图类的鼠标左键消息响应函数中创建和启动线程:

void CThreadTestView::OnLButtonDown(UINT nFlags, CPoint point) 

    AfxBeginThread(MessageThread, _T("Greetings from your thread!")); 
    CView::OnLButtonDown(nFlags, point); 
}

程序运行结果:

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

工作线程AfxBeginThread的使用相关推荐

  1. MFC多线程的创建,包括工作线程和用户界面线程

    MFC多线程的创建 1.MFC多线程简介 MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的.每一个应用程序的执行都有一个主线程,这个主线程也是 ...

  2. VC++中多线程学习(MFC多线程)一(线程的创建、线程函数如何调用类成员呢?如何调用主对话框的成员?、MFC中的工作线程和界面线程的区别)

    这里废话不多讲了,因为项目原因,需要开启线程进行处理,在不了解线程的情况下,直接百度一下,然后就使用了,结果可想而知,出现了异常,所以花了一天时间系统学习一下多线程,这里主要是针对win32编程方面的 ...

  3. Win32:MessageBox、AfxMessageBox、及工作线程中的对话框

    首先我们要清晰一点,同样是线程,但创建线程方式不同,由于创建线程的内部实现不同,也就意味着对后期影响是不一样的. 三种创建线程的方式 C语言的:__beginthread()/__beginthrea ...

  4. 技术派-在工作线程与UI线程中创建对话框

    目录 UI线程创建方式 头文件模板 实现代码模板 工作线程的创建方式 工作线程的线程模板 对话框头文件模板 对话框实现部分 我们在工作中,经常需要在新线程里面创建对话框,要么是在工作线程里面创建对话框 ...

  5. HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程

    在<HDFS源码分析心跳汇报之数据结构初始化>一文中,我们了解到HDFS心跳相关的BlockPoolManager.BPOfferService.BPServiceActor三者之间的关系 ...

  6. 多工作线程获取工作队列简单实现

    以下是APUE线程章节中,简单实现多工作线程获取工作队列源码! #include <stdio.h> #include <stdlib.h> #include <stri ...

  7. IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的...

    IIS连接数 一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,这边先从普通不懂代码用户角度理解IIS连接数 顾名思义即为IIS服务器可以同时容纳客户请求的最高连接数,准确的说应该叫" ...

  8. IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的......

    IIS连接数 一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,这边先从普通不懂代码用户角度理解IIS连接数 顾名思义即为IIS服务器可以同时容纳客户请求的最高连接数,准确的说应该叫" ...

  9. Mirror--镜像使用的工作线程数

    /* 在SQL SERVER 2005 及以后版本中, 使用'MAXworker thread' 来配置 可用的线程数,默认设置为0 ,即自动控制线程数   计算最大工作线程数:   对于32 位系统 ...

最新文章

  1. enote笔记语言(2)(ver0.3)
  2. 【THML】兴唐第二十八节课 几个小程序
  3. linux 查看 文档 不显示注释 命令
  4. 5 月书讯 | 程序员的历史课,是时候补补了
  5. VC++中使用MFC通过ADO连接数据库
  6. python爬虫(五)_urllib2:urlerror和httperror
  7. 行代码入门python_新浪微博Android客户端开发视频教程(36讲)
  8. 如何安装nginx_lua_module模块
  9. c#获取对象的唯一标识_DDD领域驱动设计实战 - 创建实体身份标识的常用策略
  10. python做饼图出现重影_Matplotlib 绘制饼图解决文字重叠的方法
  11. C# list导出Excel(二)
  12. 一套代码在不同的电脑执行快慢_电脑如何选配之硬盘篇
  13. ZooKeeper(3.4.5) - 原生 API 的简单示例
  14. Python入门到精通(一):入门必备知识
  15. 集成电路设计的运作模式
  16. t3软件怎么生成报表_用友t3财务报表生成的步骤和流程
  17. 高中计算机excelppt,高一信息技术 4.2利用Excel表格处理个人财务教案.doc
  18. 五个高效的工作方式,提高你的工作效率
  19. thinkpadt410接口介绍_联想t410配置参数详解
  20. 爱荷华州立大学计算机学院,爱荷华州立大学最新qs世界排名

热门文章

  1. MacOSX系统下HomeBrew安装指定版本的软件 IntelliJ IDEA 设置多个Go语言版本开发
  2. Dynamics 365中的应用程序介绍
  3. 04737 c++ 自学考试2019版 第四章课后练习 程序设计题 2
  4. 【Python爬虫】存储格式化数据
  5. C#LeetCode刷题之#20-有效的括号(Valid Parentheses)
  6. f2fs 设置stripe_欧洲如何在PSD2下使用Stripe实现3DS2的SCA合规性
  7. kubernetes_Kubernetes领域的标准安全性。
  8. ruby on rails_如何在Ruby on Rails应用中用Vue.js替换jQuery
  9. VS2103没有“dirent.h”文件
  10. 使用 simiki 搭建个人 wiki(简易的博客)