У меня есть метод, который часто вызывается из нескольких потоков. Это связано с записью на диск с использованием await FileIO.WriteTextAsync
. Это хорошо работает, когда она вызывается из одного потока, но как только я начинаю делать это в нескольких потоках, я получаю эту ошибку:Metro App FileIO.WriteTextAsync Несколько потоков
The process cannot access the file because it is being used by another process.
Я знаю, что означает, что ошибка, но я не знаю, как работать вокруг него. Обычно я создавал бы оператор lock(object)
, чтобы гарантировать, что к файлу обращаются только по одному потоку за раз. Однако это асинхронный метод, и поэтому я не могу использовать оператор await
в теле оператора lock(object)
.
Просьба сообщить, как справиться с этим сценарием.
Ну, Стивен, неудивительно, почему у вас такая огромная репутация. Решение и ваше личное отношение к нему было фантастическим. Теперь мой процесс работает отлично. Я также использовал ваше предложение, чтобы усилить мой класс регистрации, который страдал от подобной проблемы. Спасибо за это! – c0D3l0g1c
Добро пожаловать! –