Tôi có một phương thức được gọi thường xuyên từ nhiều luồng. Nó liên quan đến việc ghi vào đĩa bằng cách sử dụng await FileIO.WriteTextAsync
. Đây hoạt động tốt khi nó được gọi từ một chủ đề duy nhất, nhưng một khi tôi bắt đầu làm điều này trong nhiều chủ đề, tôi nhận được lỗi này:Ứng dụng Metro FileIO.WriteTextAsync Nhiều chủ đề
The process cannot access the file because it is being used by another process.
Tôi biết những gì lỗi nghĩa, nhưng tôi không chắc chắn làm thế nào để làm việc xung quanh nó. Thông thường, tôi sẽ tạo một câu lệnh lock(object)
, để đảm bảo rằng tệp đang được truy cập bởi chỉ một luồng tại một thời điểm. Tuy nhiên, đây là một phương pháp không đồng bộ và vì vậy tôi không thể sử dụng toán tử await
trong phần nội dung của câu lệnh lock(object)
.
Vui lòng thông báo về cách xử lý trường hợp này.
Vâng Stephen không có gì lạ khi bạn có danh tiếng lớn như vậy. Các giải pháp và liên lạc cá nhân của bạn với nó là tuyệt vời. Quá trình của tôi đang chạy hoàn hảo ngay bây giờ. Tôi cũng đã sử dụng đề xuất của bạn để tăng cường lớp đăng nhập của tôi đang gặp vấn đề tương tự. Cảm ơn vì điều đó! – c0D3l0g1c
Bạn được chào đón! –