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