使用CreateThread出现问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:27:14
比如
hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)CFweDlg::draw,NULL,0,&Thread);
这是一般的创建方法,但是这个draw函数我在调用的时候必须有5个参数,但是把参数带入,也就是
hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)CFweDlg::draw(0,0,25*N,25*N,true),NULL,0,&Thread);
的话,运行起来的时候会有问题,怎么办

线程的生命周期有5个状态:
创建状态----就绪状态---可运行状态---不可运行状态---死亡状态
你说的"CreateThread创建线程后在一个程序中只能执行一次"
就是创建状态----就绪状态---可运行状态---死亡状态
这个线程已经结束
你需要再new一个出来,
或者在run方法里用循环

显然你没有看CreateThread的说明啊,CreateThread有个参数就是传递参数指针的。
你的线程函数也有问题,函数的原型应该是类似这种:
unsigned long __stdcall ThreadProc(void* pAny)
{
//
}
我这里有个回答,你可以看看
http://zhidao.baidu.com/question/112758140.html

函数我听到面的是参数啊,参数只能弄一个