多线程第3个参数到底要是什么类型的
发布网友
发布时间:2022-04-27 08:25
我来回答
共2个回答
热心网友
时间:2023-09-14 17:15
函数指针。也就是启动线程后会调用的函数,
函数声明已经写在上面了。可以这样定义函数:
unsigned long ThreadFunc(void *lparam)
{
。。。。
}
然后将ThreadFunc作为第三个参数调用。
第四个参数是传给ThreadFunc的参数。可以将要传的参数类型转换成void*,如果是结构体,则可以将其地址作为参数传进去,然后在线程函数里进行转换。
例如:
hThread=CreateThread(NULL,100,ThreadFunc,&i,0,&ThreadId);
unsigned long ThreadFunc(void * lparam)
{
int a=(int)lparam;
a++;...
}
//=================================
POINT p;
...
hThread=CreateThread(NULL,&p,ThreadFunc,&i,0,&ThreadId);
unsigned long ThreadFunc(void * lparam)
{
POINT p=*(POINT*)lparam;
...
}
参考资料:http://ke.baidu.com/view/1191444.htm
热心网友
时间:2023-09-14 17:16
如果是VC程序,建议使用AfxBeginThread函数创建线程。