|
|
1
0
你的线曾经退出过吗?如果是这样,您可以在退出时在线程中设置一个事件,并让主进程通过waitForsingleEvent等待该事件。最好使用超时,这样主进程在关闭时就不会锁定。在超时事件中,通过afxkillthread终止线程。不过,您必须确定什么是合理的超时。 既然你不在线程中循环,在我看来这是唯一的方法。当然,您可以在主进程中设置一个布尔标志,并让线程定期检查这个标志,但是您的线程代码将被乱丢“if(!canrun)return;“类型代码。 如果线程从未退出,那么afxkillthread/afxterminatethread是停止线程的唯一方法。 |
|
|
2
2
这里没有秘密的魔法知识。 只需在函数代码中定期检查事件对象,您认为可以安全地退出。 |
|
|
3
0
局部变量将被放置在堆栈上,因此,在强制关闭线程时将被释放(我认为)。不过,析构函数不会被调用,线程持有的任何关键部分也不会被释放。 但是,如果线程只使用堆栈上的简单数据类型进行操作,那么这样做是安全的。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 2 年前 |
|
|
András Takács · Python多线程错误 2 年前 |