C# IOException进程无法访问该文件,因为另一进程正在使用该文件

C# IOException进程无法访问该文件,因为另一进程正在使用该文件,c#,C#,我有一个运行Tshark进程的应用程序。 每个进程在磁盘上创建文件(Wireshark文件)。 在用户决定将特定文件保存到应用程序后,kill命令集将终止进程。 在此之后,Procees.exit事件将引发,并且刚刚创建的文件将复制到磁盘上的另一个位置。 此时,我想删除旧文件,但在大多数情况下,由于另一个进程正在使用该文件,因此得到了IOException private void CopyFile(MyClass tsharkFile) { try

我有一个运行
Tshark
进程的应用程序。 每个进程在磁盘上创建文件(Wireshark文件)。 在用户决定将特定文件保存到应用程序后,kill命令集将终止进程。 在此之后,
Procees.exit
事件将引发,并且刚刚创建的文件将复制到磁盘上的另一个位置。 此时,我想删除旧文件,但在大多数情况下,由于另一个进程正在使用该文件,因此得到了
IOException

    private void CopyFile(MyClass tsharkFile)
    {
        try
        {
            string oldFile = ...
            string newFile = ...

            File.Copy(oldFile, newFile);
            File.Delete(oldFile);
        }
        catch (IOException)
        {
            status = "Failed to delete file";
        }
    }
Procees.exit之后调用的上述函数引发了事件,并且进程不存在。
这是kill进程函数:

private void KillTshatkProcess(int processId)
{
    lock (_list) //
    {
        foreach (tsharkFile tsh in _list)
        {
            if (tsh.processId == processId)
            {
                Process process = Process.GetProcessById(tsh.processId); 
                if (process != null)
                {
                    process.Kill();
                    process.WaitForExit();
                }
            }
        }
    }
}

有什么方法可以等待并确保我的
进程
已停止,然后删除该文件吗?

Windows需要时间来清理你留下的弹片,你必须给它一个机会。或者可能是使用Process.WaitToExit(2000)?