来源 :今日头条@编程小新
HANDLE WINAPI CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId);
unsigned long _beginthreadex(
void *security,
unsigned stack_size,
unsigned ( __stdcall *start_address )( void * ),
void *arglist,
unsigned initflag,
unsigned *thrdaddr
);
void ThreadFunc(LPVOID pParam)
{
printf('线程ID号为%4d的子线程说:Hello World\n', GetCurrentThreadId());
return 0;
}
_beginthreadex 线程回调函数
unsigned int __stdcall ThreadFun(PVOID pM)
{
printf('线程ID号为%4d的子线程说:Hello World\n', GetCurrentThreadId());
return 0;
}
_beginthreadex 的回调函数还可以用函数指针的形式给出
typedef unsigned(__stdcall *PTHREAD_START) (void *); //定义函数指针
回调函数
DWORD WINAPI CommProc(LPVOID lpParam)
{
printf('线程ID号为%4d的子线程说:Hello World\n', GetCurrentThreadId());
return 0;
}
主函数
int main()
{
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadFunc1, NULL, 0, NULL);
_beginthreadex(NULL, 0, ThreadFun, NULL, 0, NULL);
//_beginthreadex如果用回调函数使用下面这条语句
_beginthreadex(NULL, 0, (PTHREAD_START)CommProc, NULL, 0, NULL);
return 0;
}
联系客服