VS2013,C++ 我剛剛發佈dll應用程序。 dll app函數之一由_beginthread運行線程。 在正常的軟件流程中,我使用互斥鎖和控制線程。在從主應用程序註銷DLL之前,我等待線程終止並關閉處理程序。C++子線程終止在main()父線程退出?
但是,有一種情況下,主應用程序可以正確的方式關閉沒有釋放資源,我的意思是不等待子線程終止和沒有處理程序關閉。
主應用程序退出是否有風險?如果退出後再次運行應用程序和線程,是否有任何風險? 操作系統有沒有風險?主線路退出後,所有線程都終止了嗎?
我知道這是「髒」的解決方案,但由於某種原因,我無法改變這種情況。
非常感謝您的建議。
有趣! 「應用程序掛起而所有線程結束」並不意味着它永遠掛起。我假設,線程也被運行時終止,不是嗎? –
@ValentinHeinitz我強烈建議閱讀關於該主題的鏈接文章......它闡明瞭很多我沒有時間來解釋自己的事情。即使運行時通過調用'TerminateThread()'(或任何其他強制手段)來終止線程,線程分配的所有資源也會被泄漏,所以它仍然是一個不好的解決方案。 – mg30rg