首页 > 技术文章 > visual studio 2012 C#exe嵌入到子窗口,程序退出后子exe文件仍然被占用

PiaoLingJiLu 2019-05-23 18:44 原文

    参考:https://blog.csdn.net/lisenyang/article/details/18303971 写了子窗体嵌套如实体窗口。退出程序之后,更改子程序。发现子程序“ChildExe1.exe”提示被“ChildExe1.exe”占用。 然后任务管理器按字母找不到 ChildExe1 。

折腾一上午。后面发现,主程序退出之后,程序挂载在1)后台进程vshost32.exe”下面或者2)Microsoft Visual Studio 2012“ChildExe1”,和“ChildExe2”是我附加到项目程序的子进程。

1)任务管理器结束任务就释放资源(注意,vshost32.exe有很多个,要干掉的是图示情况。

2)这种情况,鼠标依次单选 “ChildExe1”,和“ChildExe2”。结束进程。

原因:在调试过程中,直接按 停止按钮 结束进程。然后子程序没触发释放代码。进而独立。如果没有子进程会不会就没事呢?只要你的代码含有一些需要手动释放的资源。程序退出时没有触发相应释放就会出现类似问题。这时候表现为exe被占用,生成解决方案失败。

 

推荐阅读