Ứng dụng cần tạo tệp trong thư mục, thực hiện điều gì đó trong thư mục rồi xóa tệp. Ví dụ, mã nguồn dưới đây:Tạo rồi xóa nguyên nhân tệp IOException
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
Nếu "cái gì đó" là một quá trình mà chỉ cần một lượng thời gian rất ngắn, File.Delete sẽ ném IOException (file đang được sử dụng bởi quá trình khác). Theo một bài SO khác: Cannot delete directory with Directory.Delete(path, true), gọi Thread.Sleep (0) nên cho phép quá trình trước đó kết thúc. Tuy nhiên, ngay cả với
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
cùng một IOException vẫn được ném.
Giải pháp tôi nhận được là một vòng lặp while cố gắng xóa tệp liên tục cho đến khi nó bị xóa. Nhưng tôi tự hỏi nếu theres 'một giải pháp tốt hơn.
Cảm ơn các câu trả lời rất nhanh (và chỉ ra nó trên MSDN. Tôi chắc chắn không cảm thấy rất tươi sáng ngay bây giờ). Gonna đi với @usr vì anh ấy là người đầu tiên. Nhưng hãy chấp nhận +1 như lời cảm ơn của tôi. – Jim