应用程序需要在目录中创建文件,在目录中执行某些操作,然后删除该文件。例如下面的源代码:
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
如果“某事”是一个只需要很短时间的进程,File.Delete 将抛出 IOException(文件正在被另一个进程使用)。根据另一个 SO 帖子:Cannot delete directory with Directory.Delete(path, true),调用 Thread.Sleep(0) 应该允许前一个进程完成。然而,即使有
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
仍然会抛出相同的 IOException。
我得到的解决方案是一个while循环,它试图重复删除文件直到它被删除。但我想知道是否有更好的解决方案。