VS2013,C++
我只是发布dll应用程序。 dll应用程序功能之一由_beginthread运行线程。
在正常的软件流程中,我使用互斥锁和控制线程。在从主应用程序注销dll之前,我等待线程终止并关闭处理程序。
但是,有一种情况是主应用程序可以关闭而无需以正确的方式释放资源,我的意思是无需等待子线程终止以及不关闭处理程序。
如果主力部队退出,会有任何风险吗?如果退出后再次运行应用程序和线程,会有任何风险吗?
操作系统有风险吗?所有线程都在主导出退出后终止吗?
我知道这是“肮脏”的解决方案,但是由于某些原因,我无法更改它。
预先感谢您的建议。
最佳答案
根据Raymond Chen(在Windows系统中)的说法,如果主线程终止,则您的应用程序将挂起,而所有线程均将终止。这意味着,没有您的解决方案将无法正常工作,您的线程会将您的应用程序冻结在关闭状态。同样,即使您的线程在退出时被强制终止,也不会被初始化,并且-由于我们在这里谈论MFC线程-它将导致您的应用程序泄漏资源,所以请不要这样做!
关于c++ - c + +子线程终止于main()父线程退出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30370702/