HANDLE CreateThread
(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadID
)
参数
第一个参数lpthreadattributes表示线程内核对象的安全属性
第二个参数dwstackSize表示栈空间大小,传入0标识使用默认大小1MB
第三个参数Ipstartaddress标识新线程所执行的线程函数地址
第四个参数lpParameter是传给线程函数的参数
第五个参数dwcreaionflage指定额外的标志来控制线程的创建,为0标识线程创建之后立即就可以进行调 度,如果为create_suspenoed则标识线程创建后暂停运行,这样则无法调度,直接调用ResumeThread ()
第六个参数IPthreadid将返回线程的id号,传入NULL表示不需要返回该线程的id号
返回值
线程创建成功返回新线程的句柄,失败则返回NULL
// createthread.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <cstdlib>
/*
HANDLE CreateThread
(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadID
}
*/
DWORD thread1() //打印
{
printf("我是thread线程\n");
return 0;
}
DWORD thread2(int n,int m) //加法
{
printf("%d\n",n+m);
return 0;
}
int main(int argc, char* argv[])
{
DWORD ID;
HANDLE H[2]; //句柄数组
H[0] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)thread1,NULL,0,&ID);
H[1] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)thread2(1,2),NULL,0,&ID);
system("pause");
printf("Hello World!\n");
return 0;
}
输出
3
我是thread线程
请按任意键继续. . . Press any key to continue