【发布时间】:2015-05-28 21:23:15
【问题描述】:
我正在使用_beginthreadex 函数创建一个线程。我传入的函数地址有一个无限循环 (while(1)) 。我有threadid 和threadhandle。
我可以使用TerminateThread(threadhandle,1);,但这很危险。
安全的方法是使用_endthreadex杀死线程,但它只能从线程内部使用,我想从外部杀死线程。
所以请建议是否有一种安全的方法可以使用threadid 或threadhandle 从外部安全地关闭、结束或终止线程。
【问题讨论】:
-
你必须修复你的代码,你需要给线程一个退出条件。如有必要,在另一个进程中运行危险且不合作的代码。
-
这是 c or c++,windows 特定的吗?等等……
-
添加了 winapi 标签,因为这确实是 Windows 特定的。
-
@UmNyobe 是的,它是 c,c++ windows。
-
@Hans 那是我最不想做的事情,有没有其他方法可以做到这一点。
标签: c++ c multithreading winapi beginthreadex