アプリケーションは、ディレクトリにファイルを作成し、ディレクトリで何かを実行してから、ファイルを削除する必要があります。たとえば、以下のソースコード:
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
「何か」が非常に短い時間しか必要としないプロセスである場合、File.DeleteはIOExceptionをスローします(ファイルは別のプロセスによって使用されています)。別のSOの投稿によると、Directory.Delete(path、true)を使用してディレクトリを削除することはできません。Thread.Sleep(0)を呼び出すと、前のプロセスを終了できます。しかし、
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
同じIOExceptionが引き続きスローされます。
私が得た解決策は、ファイルが削除されるまでファイルを繰り返し削除しようとするwhileループです。しかし、もっと良い解決策があるかどうか疑問に思っています。