gpt4 book ai didi

c++ - 将 _beginthread 返回的 uintptr_t 转换为 HANDLE 是否安全?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:48:09 24 4
gpt4 key购买 nike

1)这篇文章的答案WaitForSingleObject : how to get handle from _beginthreadex说只有将 uintptr_t returned _beginthreadex 转换为 HANDLE 类型才合法,那么将 uintptr_t returned _beginthread 转换为 HANDLE 类型不安全吗?

2)我们在 32 位应用程序中进行了如下转换,它似乎运行良好,当我将此应用程序转换为 64 位时会遇到任何问题吗?处理线程 = (HANDLE)_beginthread(checkThread, 0, &thrVal);

3) 是否值得将所有 _beginthread 调用转换为 _beginthreadex?

最佳答案

如果您想使用 Windows 同步 API,您需要一个由您控制的 HANDLE。使用从 _beginthread 返回的 uintptr_t 不能安全地转换为用于同步 API 的 HANDLE 值。 _beginthread, _beginthradex 的文档这里很清楚(强调我的):

You can also use the thread handle that's returned by _beginthreadex with the synchronization APIs, which you cannot do with _beginthread.

如果您不想依赖未记录的行为,如果您需要一个 HANDLE 值用于同步 API,则必须使用 _beginthreadex

关于c++ - 将 _beginthread 返回的 uintptr_t 转换为 HANDLE 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com