MFC AfxBeginThread 多参数处理
来源:互联网 发布:淘宝网非凡服饰 编辑:程序博客网 时间:2024/06/14 20:30
1、 MFC中有两类线程,分别称之为工作者线程和用户界面线程。
二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。
用户界面线程和工作者线程都是由AfxBeginThread创建的。现在,考察该函数:MFC提供了两个重载版的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下有用。----引自:点击打开链接
2、多参数传入线程,一般有两种方式:
方法一:定义全局结构体,在线程函数内直接调用。
struct Sok //结构体
{
SOCKET s;
SOCKADDR_IN addrClient;
int len;
};
Sok sok_test ;//结构体声明
static UINT whileass()//全局结构体传入参数。
{
while(s_d=accept(sok_test.s,(sockaddr*)&sok_test.addrClient,&sok_test.len))
{
AfxBeginThread((AFX_THREADPROC)Open,(LPVOID)IDC_BUTTON1,0,0,0,0);
}
return 0;
}
AfxBeginThread((AFX_THREADPROC)whileass,(LPVOID)IDC_BUTTON1,0,0,0,0);//调用whileass函数
2、利用 AfxBeginThread自带方法传入参数,然后进行类型转换。
如:
DWORD WINAPI ThreadProc(LPVOID pParam)//利用mfc AfxBeginThread自带方法传入参数
{
Sok rect=*(Sok*)pParam;
while(s_d=accept(rect.s,(sockaddr*)&rect.addrClient,&rect.len))
{
AfxBeginThread((AFX_THREADPROC)Open,(LPVOID)IDC_BUTTON1,0,0,0,0);
}
return 0;
}
AfxBeginThread((AFX_THREADPROC)ThreadProc,&_sok,THREAD_PRIORITY_IDLE);//调用ThreadProc
- MFC AfxBeginThread 多参数处理
- MFC AfxBeginThread
- MFC AfxBeginThread
- MFC全局函数::AfxBeginThread
- MFC全局函数::AfxBeginThread
- MFC全局函数::AfxBeginThread
- MFC error C2665: “AfxBeginThread”
- MFC全局函数::AfxBeginThread
- MFC用户线程AfxBeginThread()
- MFC 多线程AfxBeginThread
- AfxBeginThread参数问题
- AfxBeginThread参数传递
- 浅谈MFC中AfxBeginThread函数
- MFC全局函数::AfxBeginThread 函数
- MFC创建线程01 AfxBeginThread
- MFC创建线程02 AfxBeginThread .
- mfc下AfxBeginThread创建线程
- MFC程序处理命令行参数
- CABasicAnimation用法
- 如何让百度快照后面拥有一个“多少人喜欢”大拇指
- ORA-00851错误
- boost bind的使用
- ===在js中含义
- MFC AfxBeginThread 多参数处理
- 推荐20款html5 css3编辑器
- Smart Install Maker 5.03 破解版
- Heresy透過 OpneNI 合併 Kinect 深度以及彩色影像資料(Kinect开发教程二:OpenNI读取深度图像与彩色图像并显示)
- C# Control的Invoke和BeginInvoke及其实现机制(消息循环)
- Java 线程Thread
- HDOJ 1312 Red and Black
- SSH原理与运用
- JavaScript中的原型和对象机制--超多实例