Metro StorageFile Многопоточная регистрация файлов

Как правильно обрабатывать многопоточный доступ к файлам StorageFile объект?

После создания StorageFileЯ пишу в него используя FileIO.AppendTextAsync,

Это работает, но как только несколько потоков вызывают FileIO.AppendTextAsyncЯ получаю сообщения об отказе в доступе - возможно, потому, что предыдущий вызов все еще выполняется.

Как мне справиться с этой ситуацией?

1 ответ

Решение

Я не нашел идеального решения, но нашел работоспособное.

  1. Отметить StorageFile с volatile Ключевое слово (Значительно меньше ошибок).
  2. Затем я произвел рефакторинг кода, который без необходимости выполнялся из разных потоков (теперь все ошибки исчезли).

ПРИМЕЧАНИЕ: и 1, и 2, реализованные вместе, были необходимы для достижения желаемого результата - поэтому мой комментарий о решении НЕ является идеальным.

ОБНОВЛЕНО: для более правильного решения, пожалуйста, смотрите этот пост: FileIO Multiple Threads

Другие вопросы по тегам