如果您正在寻找与平台无关的方法,请使用boost
还有beginthread()和beginthreadex()函数.两者似乎都是对Win32 API的补充,在某种意义上,在许多用例中,你仍然需要调用一些Win32函数(例如beginHrelex的CloseHandle).所以,如果你对平台兼容性不太关心,你也可以削减前戏并使用CreateThread().
这里记录了Win32线程处理:http://msdn.microsoft.com/en-us/library/ms684852(VS.85).aspx
[edit1]示例:
DWORD WINAPI MyThreadProc( void* pContext ) { return 0; } HANDLE h = CreateThread( NULL, 0, MyThreadProc, this, 0L, NULL ); WaitForSingleObject(h, TIME); // wait for thread to exit, TIME is a DWORD in milliseconds
[edit2] CRT&CreateThread():
每个MSDN:
调用C运行时库(CRT)的可执行文件中的线程应使用_beginthreadex和_endthreadex函数进行线程管理,而不是CreateThread和ExitThread; 这需要使用CRT的多线程版本.如果使用CreateThread创建的线程调用CRT,则CRT可以在低内存条件下终止进程.
如果您正在寻找与平台无关的方法,请使用boost
还有beginthread()和beginthreadex()函数.两者似乎都是对Win32 API的补充,在某种意义上,在许多用例中,你仍然需要调用一些Win32函数(例如beginHrelex的CloseHandle).所以,如果你对平台兼容性不太关心,你也可以削减前戏并使用CreateThread().
这里记录了Win32线程处理:http://msdn.microsoft.com/en-us/library/ms684852(VS.85).aspx
[edit1]示例:
DWORD WINAPI MyThreadProc( void* pContext ) { return 0; } HANDLE h = CreateThread( NULL, 0, MyThreadProc, this, 0L, NULL ); WaitForSingleObject(h, TIME); // wait for thread to exit, TIME is a DWORD in milliseconds
[edit2] CRT&CreateThread():
每个MSDN:
调用C运行时库(CRT)的可执行文件中的线程应使用_beginthreadex和_endthreadex函数进行线程管理,而不是CreateThread和ExitThread; 这需要使用CRT的多线程版本.如果使用CreateThread创建的线程调用CRT,则CRT可以在低内存条件下终止进程.