Metro StorageFile多线程文件日志记录
本文关键字:日志 记录 文件 多线程 StorageFile Metro | 更新日期: 2023-09-27 18:00:35
处理对StorageFile
对象的多线程文件访问的正确方法是什么?
在创建了StorageFile
之后,我使用FileIO.AppendTextAsync
对其进行写入。
这是可行的,但一旦多个线程调用FileIO.AppendTextAsync
,我就会收到拒绝访问错误——可能是因为以前对它的调用仍在运行。
我该如何处理这种情况?
我还没有找到完美的解决方案,但我找到了一个可行的解决方案。
- 用
volatile
关键字标记StorageFile
(显著减少错误) - 然后,我重构了一些不必要地从不同线程执行的代码(现在所有错误都消失了)
注意:为了达到预期的结果,必须同时执行1和2,因此我认为解决方案并不完美。
更新:有关更正确的解决方案,请参阅以下帖子:FileIO多线程