AfxBeginThread的介绍/基本用法
来源:互联网 发布:linux delay 编辑:程序博客网 时间:2024/06/05 03:12
(转)AfxBeginThread的介绍/基本用法
(2011-12-13 09:32:14)杂谈
分类: 编程AfxBeginThread的介绍/基本用法
AfxBeginThread
用户界面线程的AfxBeginThread
CWinThread* AFXAPI AfxBeginThread(
CRuntimeClass* pThreadClass,
int nPriority,
UINT nStackSize,
DWORD dwCreateFlags,
LPSECURITY_ATTRIBUTES lpSecurityAttrs)
其中:
参数1是从CWinThread派生的RUNTIME_CLASS类;
参数2指定线程优先级,如果为0,则与创建该线程的线程相同;
参数3指定线程的堆栈大小,如果为0,则与创建该线程的线程相同;
参数4是一个创建标识,如果是CREATE_SUSPENDED,则在悬挂状态创建线程,在线程创建后线程挂起,否则线程在创建后开始线程的执行。
参数5表示线程的安全属性,NT下有用。
工作者线程的AfxBeginThread
工作者线程的AfxBeginThread的原型如下:
CWinThread* AFXAPI AfxBeginThread(
AFX_THREADPROC pfnThreadProc,
LPVOID pParam,
int nPriority,
UINT nStackSize,
DWORD dwCreateFlags,
LPSECURITY_ATTRIBUTES lpSecurityAttrs)
其中:
参数1
参数2
参数3、4、5分别指定线程的优先级、堆栈大小、创建标识、安全属性,含义同用户界面线程。
附录A:
结束线程的两种方式
面会详细的向你解释要结束线程的两种方式
当然你可以定义自己的认为合适的值来代表线程成功执行.在线程内调用AfxEndThread将会直接结束线程,此时线程的一切资源都会被回收.
还是老师的那个项目,以前由于计算量太大,导致程序经常出现假死的现象,因为程序只有一个线程,该线程主要用于处理计算上了,而对于消息队列的响应被忽略了。因此解决的办法就是用两个线程,一个线程用于计算,一个线程用于处理消息。
UINT CMultithreadDlg::jisuan(LPVOID lpParam)
{
int i = 1;
for (;;)
{
}
return 0;
}
CWinThread* mythread = AfxBeginThread(
我就纳闷了,函数指针是对的啊,原来 线程函数可以且必须是全局函数或者是静态成员函数。
所以我们在线程函数的声明中改为 static UINT jisuan(LPVOID lpParam);即可,然后运行程序,这时点击start,待CPU涨至100%后,点击dialog,弹出对话框了,拖动、关闭窗口均没问题了。
在原来的程序上进行改动。向对话框类里面添加一个CWinThread* 的成员变量,不用初始化为NULL,这样会报错的,因为它只能通过AfxBeginThread函数获得。把start里面的声明去掉。
然后添加一个 pause 按钮向其响应函数里面添加代码 mythread->SuspendThread();
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread的介绍/基本用法
- AfxBeginThread 的介绍/基本用法
- AfxBeginThread的基本用法
- AfxBeginThread的基本用法
- xcode快捷键使用
- arm linux中一些重要的宏及地址定义
- 发个json文件转lua的小工具
- ajax中接受返回字符串转为json并进行处理(不使用jquery)
- Eclipse “cannot be resolved to a type”
- AfxBeginThread的介绍/基本用法
- 题目1192:回文字符串
- 去掉联系人应用
- codeforces 463D Gargari and Permutations
- struts2日期控件--datetimepicker
- 在android 中导入项目后 包出现错误的解决方法
- 题目1194:八进制 输入一个整数,将其转换成八进制数输出
- 职场生涯规划中必须学会的十种能力
- ต้นฉบับแทงบอลออนไลน์ที่มาตรฐานมากที่สุด