afxbeginthread线程传参数
时间: 2023-09-16 18:12:34 浏览: 123
可以使用afxbeginthread函数启动一个线程,并且可以传递参数,通常有两种方式:
1. 通过在线程函数中添加参数来传递数据;
2. 通过使用结构体来传递多个参数。
在第一种方式中,可以将参数作为线程函数的参数传递,然后在线程函数中进行处理。例如:
UINT MyThreadProc(LPVOID lpParam)
{
int nValue = *(int*)lpParam;
// do something with nValue
}
int nValue = 10; // the parameter to pass to thread
AfxBeginThread(MyThreadProc, &nValue);
在第二种方式中,可以定义一个结构体来传递多个参数,例如:
struct ThreadParams
{
int nValue1;
float fValue2;
char szText[256];
};
UINT MyThreadProc(LPVOID lpParam)
{
ThreadParams* pParams = (ThreadParams*)lpParam;
int nValue1 = pParams->nValue1;
float fValue2 = pParams->fValue2;
char* szText = pParams->szText;
// do something with the parameters
}
ThreadParams params = {10, 3.14f, "Hello world!"}; // the parameters to pass to thread
AfxBeginThread(MyThreadProc, ¶ms, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
阅读全文