TerminateThread() 可以终止 GetCurrentThread() 吗?

问题描述 投票:0回答:1

docs没有说明

GetCurrentThread()
的结果是否是
TerminateThread()
的有效参数,iow:线程是否可以自行取消。

可以吗?如果是,

TerminateThread()
是否会返回?

忽略“

THREAD_TERMINATE
访问”的问题;假设我们实际上并没有调用
GetCurrentThread()
,而是存储了从
CreateThread()
返回的句柄,并现在从创建的线程中使用它来调用
TerminateThread()

multithreading winapi terminate
1个回答
0
投票

我不确定您当前问题的正确答案是什么(是否可以为当前线程调用

TerminateThread
)。

但即使它可行,这似乎也是一个坏主意。

首先请注意,拨打

TerminateThread
只能作为最后的手段。
上面的文档链接中有许多警告。

其次,有更好的方法可以有序地结束当前线程:

  1. 从线程函数返回。
  2. 调用
    ExitThread
    API。

鉴于上述 2 点,我看不到您想要为当前线程调用

TerminateThread
的场景。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.