当前位置:  开发笔记 > 编程语言 > 正文

如何在VC++中创建线程

如何解决《如何在VC++中创建线程》经验,为你挑选了1个好方法。

如果您正在寻找与平台无关的方法,请使用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可以在低内存条件下终止进程.



1> galets..:

如果您正在寻找与平台无关的方法,请使用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可以在低内存条件下终止进程.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有