我正在使用创建一个线程_beginthreadex
功能。我传入的函数地址有一个无限的 while 循环(while(1)
)。我有threadid
and threadhandle
.
我可以用TerminateThread(threadhandle,1);
但这很危险。
安全的方法是使用杀死线程_endthreadex
但它只能从线程内部使用,我想从外部杀死线程。
因此,请建议是否有一种安全的方法可以从外部使用安全地关闭、结束或终止线程threadid
or threadhandle
.
你应该- 字面上地 -从不使用终止线程().我什至不是在开玩笑。如果从外部终止线程,则该线程中保留的所有资源都将被泄漏,内部访问的所有状态变量将具有未确定的状态等等。
您的问题的解决方案可能是向您的线程发出信号使其自行完成。它可以通过通过线程安全方式更改的易失性变量来完成(请参阅互锁增量())、Windows 事件或类似的事件。如果您的线程有消息循环,您甚至可以通过发送消息要求其停止来实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)