首先是对线程函数和使用变量的声明,直接上代码 struct PAR //定义一个结构体,把需要的两个参数传给add函数! { int a; int b; }; void add(PAR &pa) { int c = pa.a + pa.b; while(1) { Sleep(1000); TRACE("add is [%d]",c); } return; } 第二、创建线程 PAR par; par.a = 2; par.b = 4; hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)add,(LPVOID)&par,9,&ThreadID); //把结构体传给add()开始执行函数。 //::WaitForMultipleObjects(1,&hThread,TRUE,INFINITE); TRACE("main!!!!!!"); 第三、释放线程 if(hThread != NULL) { TerminateThread(hThread,-100); ::WaitForMultipleObjects(1,&hThread,TRUE,INFINITE); CloseHandle(hThread); hThread = NULL; TRACE("here is over!!!/n"); } 注:在释放线程时一定要调用closeHandle,否则会造成内存泄露! over!