我需要从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);
正在发生,因为这是它的设计行为方式:
注
Kill方法异步执行。调用
Process.Kill
方法后,调用Kill
方法以等待进程退出,或检查WaitForExit
属性以确定进程是否已退出。