杀掉进程及其子进程的问题

deyter 2009-04-21 03:01:08
mainAppExe是我写的程序名字,它里面引用了两个DLL。当mainAppExe运行时,我的升级程序要覆盖原来的两个DLL,就必须先关掉mainAppExe进程吧,
我用了如下方法,可是为什么在覆盖DLL文件时会报出“该进程无法访问文件,因为该文件正由另一进程使用”的错误?
感谢!

Process[] allProcess = Process.GetProcesses();
foreach (Process p in allProcess)
{
if (p.ProcessName.ToLower() + ".exe" == mainAppExe.ToLower())
{
for (int i = 0; i < p.Threads.Count; i++)
p.Threads[i].Dispose();
p.Kill();
}
}
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
startray 2009-04-21
  • 打赏
  • 举报
回复
up
deyter 2009-04-21
  • 打赏
  • 举报
回复
我看原因是进程没有完全退出,用了sleep(1000)就没有问题。
Solo路途 2009-04-21
  • 打赏
  • 举报
回复
如果进程里面有while循环的话 是结束不了的吧
先把循环结束掉

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧