有什么更好的方式来启动一个线程,_beginthread
, _beginthreadx
or CreateThread
?
我正在尝试确定什么是优点/缺点_beginthread
, _beginthreadex
and CreateThread
。所有这些函数都会向新创建的线程返回一个线程句柄,我已经知道 CreateThread 在发生错误时提供了一些额外的信息(可以通过调用来检查)GetLastError
)...但是当我使用这些函数时我应该考虑哪些事情?
我正在使用 Windows 应用程序,因此跨平台兼容性已经不可能了。
我已经阅读了 msdn 文档,但我无法理解,例如,为什么有人会决定使用 _beginthread 而不是 CreateThread,反之亦然。
Cheers!
更新:
好的,感谢您提供的所有信息,我还在几个我无法调用的地方阅读过WaitForSingleObject()
如果我用过_beginthread()
,但如果我打电话_endthread()
在线程中不应该工作吗?那里有什么交易?
CreateThread()
是一个原始 Win32 API 调用,用于在内核级别创建另一个控制线程。
_beginthread()
& _beginthreadex()
是 C 运行时库调用CreateThread()
在幕后。一次CreateThread()
已经回来了,_beginthread/ex()
负责额外的簿记工作,以使 C 运行时库在新线程中可用且一致。
在 C++ 中你几乎肯定应该使用_beginthreadex()
除非您根本不会链接到 C 运行时库(又名 MSVCRT*.dll/.lib)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)