Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MFC应用程序在出口时偶尔冻结_C++_Mfc - Fatal编程技术网

C++ MFC应用程序在出口时偶尔冻结

C++ MFC应用程序在出口时偶尔冻结,c++,mfc,C++,Mfc,我有一个MFC对话框应用程序,偶尔会在退出时冻结。我可以在CWinApp::ExitInstance设置一个断点,它将到达那里,但继续操作时将挂起 我似乎在VisualStudio中也没有中断程序的选项,只有“停止调试” 该应用程序唯一的特殊之处在于,它在一个单独的线程中完成大部分工作(文件处理),而UI只显示一个进度条 自从我做过任何C++或MFC编码以来,已经有一段时间了,所以调试这个问题有点生疏。因此,我正在寻找一些如何调试的想法,或者最有可能的原因是什么 内存泄漏? 线程死锁? 线程未退

我有一个MFC对话框应用程序,偶尔会在退出时冻结。我可以在CWinApp::ExitInstance设置一个断点,它将到达那里,但继续操作时将挂起

我似乎在VisualStudio中也没有中断程序的选项,只有“停止调试”

该应用程序唯一的特殊之处在于,它在一个单独的线程中完成大部分工作(文件处理),而UI只显示一个进度条

自从我做过任何C++或MFC编码以来,已经有一段时间了,所以调试这个问题有点生疏。因此,我正在寻找一些如何调试的想法,或者最有可能的原因是什么

内存泄漏? 线程死锁?
线程未退出?

如果无法通过Visual Studio中断/暂停执行,请转储进程内存并将其放入windbg。在退出主UI线程之前,请确保已通知工作线程并完全关闭(其线程句柄已发出信号)。在应用程序验证程序下运行应用程序。我建议您打开VS Threads窗口,当执行在该断点处停止时,冻结线程你认为这是绞刑的原因。我怀疑有一个线程正在执行一个永无止境的操作,或者应用程序正在等待一个永无止境的线程的终止。我的建议对第一个案例有帮助。