C++ AfxBeginThread
计算从1+2+3...+100000=?
关键点
CWinThread*
AfxBeginThread(
AFX_THREADPROC
pfnThreadProc,
LPVOID
pParam,
int
nPriority
=
THREAD_PRIORITY_NORMAL,
UINT
nStackSize
=
0,
DWORD
dwCreateFlags
=
0,
LPSECURITY_ATTRIBUTES
lpSecurityAttrs
=
NULL
);
实现过程
|
class CMfc01Dlg : public CDialog
{
// Construction
public:
CMfc01Dlg(CWnd* pParent = NULL); // standard constructor
CWinThread *m_sumProc;
// Dialog Data
UINT SumPro(LPVOID pParam)
{
CMfc01Dlg *pDlg=(CMfc01Dlg*)pParam;
__int64 nSum=0;
char pszText[128]={0};
for (UINT i=1;i<100000;i++)
{
nSum+=i;
memset(pszText,0,128);
wsprintf(pszText,"累计到%d的结果为%I64d",i,nSum);
pDlg->m_listbox1.AddString(pszText);
}
return 0;
}
void CMfc01Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_sumProc=AfxBeginThread(SumPro,this,0,0,0,NULL);
} void CMfc01Dlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
if (SumPro!=NULL)
{
DWORD dwExit=0;
BOOL bRet=GetExitCodeThread(m_sumProc->m_hThread,&dwExit);
if (dwExit==STILL_ACTIVE)
{
m_sumProc->ExitInstance();
delete m_sumProc;
}
}
CDialog::OnClose();
}
|
图
备注
相关链接
C++ AfxBeginThread的更多相关文章
- VC++ 结束线程 AfxBeginThread AfxEndThread
如果你的线程是从CWinThread继承出来的,结束自己就用AfxEndThread, 如果是外部调用的话,可以用PostThreadMessage(m_nThreadID, WM_QUIT,0,0) ...
- VC++ AfxBeginThread 与 CreateThread 的区别
简言之:AfxBeginThread是MFC的全局函数,是对CreateThread的封装. CreateThread是Win32 API函数,前者最终要调到后者.具体说来,CreateThre ...
- 使用MFC中的AfxBeginThread创建多线程
创建一个基于对话框的工程,工程名为CreateThreadRect 在CreateThreadRect.cpp中增加一个ThreadProc函数,代码如下 工作者线程的函数必须是全局函数或静态 ...
- AfxBeginThread和AfxEndThread+内存泄露
ref http://blog.csdn.net/kut00/article/details/4209680 启动线程: CWinThread* AfxBeginThread( 线程函数, this ...
- 多线程 AfxBeginThread 与 CreateThread 的区别
简言之: AfxBeginThread是MFC的全局函数,是对CreateThread的封装. CreateThread是Win32 API函数,前者最终要调到后者. 1>.具体说来,Cr ...
- AfxBeginThread的介绍/基本用法
AfxBeginThread 用户界面线程和工作者线程都是由AfxBeginThread创建的.现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一 ...
- 工作线程AfxBeginThread的使用
工作线程通常用来执行一些后台任务,如:数据计算.后台杀毒等等.因为不需要创建窗口和处理用户消息,编写比较容易,在程序中只要调用AfxBeginThread 函数就可以创建并启动一个工作线程了. Afx ...
- 用户界面线程AfxBeginThread的使用
用户界面线程在运行时会有一个窗口界面和与其相对应的窗口函数,所以它可以通过响应消息来和用户进行交互. AfxBeginThread 函数原型如下: CWinThread *AfxBeginThread ...
- CreateThread、_beginthreadex和AfxBeginThread 的区别
CreateThread._beginthreadex和AfxBeginThread 创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢?参考了一些资料,写得都挺好的,这里做一些摘抄和整 ...
随机推荐
- Android 使用Instrumentation进行界面的单元测试
如果我们要对一个Activity界面上的一个按钮的点击事件进行单元测试,则可使用ActivityInstrumentationTestCase2类来进行测试. 首先我们定义一个测试类: public ...
- 新闻类App使用的组件
UI SlidingMenu:com.jeremyfeinstein.slidingmenu:滑动菜单 ActionBarSherlock:com.actionbarsherlock:Action B ...
- linux下无线网卡的ioctl 接口
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/ba ...
- Oracle数据库导出
一. pl/SQL方式 1.打开plsql,找到工具栏,导出表
- 解决duilib使用zip换肤卡顿的问题:修改duilib并使用资源文件换肤
转载请说明原出处,谢谢~~ 今天在做单子是,客户要求做换肤功能,为此我专门写了一个换肤函数,并且把各种皮肤资源压缩为各个zip文件来换肤.但是客户反映程序运行缓慢,我测试后发现的确明显可以看出慢了不少 ...
- 写给Python初学者的设计模式入门
有没有想过设计模式到底是什么?通过本文可以看到设计模式为什么这么重要,通过几个Python的示例展示为什么需要设计模式,以及如何使用. 设计模式是什么? 设计模式是经过总结.优化的,对我们经常会碰到的 ...
- CentOS6.2编译安装codelite5.3
这两天实验室要求在服务器上安装一个codelite,于是由我对服务器下手,上网看了下悲剧的发现codelite不支持在centos上直接安装,只能编译安装,经过一番折腾之后,成功的装上了,下面是我的安 ...
- LinkButton(按钮)
使用$.fn.linkbutton.defaults重写默认值对象. 按钮组件使用超链接按钮创建.它使用一个普通的<a>标签进行展示.它可以同时显示一个图标和文本,或只有图标或文字.按钮的 ...
- stdlib.h 头文件
stdlib 头文件即standard library标准库头文件.stdlib.h里面定义了五种类型.一些宏和通用工具函数. 类型例如size_t.wchar_t.div_t.ldiv_t和lldi ...
- 单片机C语言下LCD多级菜单的一种实现方法
摘要: 介绍了在C 语言环境下,在LCD 液晶显示屏上实现多级嵌套菜单的一种简便方法,提出了一个结构紧凑.实用的程序模型. 关键词: 液晶显示屏; 多级菜单; 单片机; C 语言; LCD 中 ...