Metro StorageFile多线程文件记录

时间:2013-02-23 09:12:58

标签: c# multithreading microsoft-metro storagefile

处理StorageFile对象的多线程文件访问的正确方法是什么?

创建StorageFile后,我使用FileIO.AppendTextAsync写信给它。

这样可行,但只要多个线程调用FileIO.AppendTextAsync,我就会收到拒绝访问错误 - 可能是因为之前的调用仍在运行。

我该如何处理这种情况?

1 个答案:

答案 0 :(得分:1)

我还没有找到完美的解决方案,但我找到了一个可行的解决方案。

  1. 使用StorageFile关键字标记volatile(显着减少错误)。
  2. 然后我重构了一些不必要地从不同线程执行的代码(现在所有错误都消失了。)
  3. 注意:一起实施1和2都是实现理想结果所必需的 - 因此我对解决方案的评论并不完美。

    更新:有关更正确的解决方案,请参阅此帖: FileIO Multiple Threads