创建线程: 微软在Windows API中提供了建立新的线程的函数CreateThread
当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程
MSDN中CreateThread原型:
HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // NULL使用默认安全性 DWORD dwStackSize, //设置初始栈的大小,以字节为单位,通常默认为0 LPTHREAD_START_ROUTINE lpStartAddress, // 指向线程函数的指针,&函数名,函数类型DWORD WINAPI 函数名(LPVOID lpParam) ,格式不正确将无法调用 LPVOID lpParameter, //向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL DWORD dwCreationFlags, //线程标志 0:表示创建后立即激活。 LPDWORD lpThreadId); //保存新线程的id。HANDLE hThread = CreateThread (&security_attributes, dwStackSize, ThreadProc,pParam, dwFlags, &idThread) ;
一般并不推荐使用 CreateThread函数,而推荐使用RTL 库里的System单元中定义的 BeginThread函数,因为这除了能创建一个线程和一个入口函数以外,还增加了几项保护措施。
在MFC程序中,应该调用AfxBeginThread函数,在 Visual C++ 程序中应调用_beginthreadex函数。