如何在C#中删除正在运行的应用程序?

问题描述 投票:1回答:1

我需要从Windows删除正在运行的应用程序。我用进程名称杀死了所有进程。在立即删除时,我收到一些错误消息。但是将任务延迟3秒钟后,该应用程序被删除,没有任何问题。

谁能解释为什么会这样吗?

foreach (var process in Process.GetProcessesByName(appName))
{
    process.Kill();
}

System.Threading.Tasks.Task.Delay(1000 * 3).Wait(); // if we try to delete directly after killing process then error occurs
System.IO.Directory.Delete(sourceFolder, true);
c#
1个回答
8
投票

正在发生,因为这是它的设计行为方式:

来自Process.Kill documentation

Kill方法异步执行。调用Process.Kill方法后,调用Kill方法以等待进程退出,或检查WaitForExit属性以确定进程是否已退出。

© www.soinside.com 2019 - 2024. All rights reserved.