使用FileIO.ReadTextAsync编写线程安全异步文件

时间:2015-01-26 13:53:58

标签: .net windows-phone-8 async-await win-universal-app

如何在Windows通用应用中使用FileIO.ReadTextAsync以便它是线程安全的?因为尝试类似

的东西
lock(lockObject)
{
    var data = await ReadTextAsync(fileName);
}

但不支持在await中使用lock =(。

2 个答案:

答案 0 :(得分:1)

使用SemaphoreSlimWaitAsync方法。

答案 1 :(得分:1)

它不受支持,因为在I / O调用期间没有(托管)线程,并且当前方法将在稍后继续,可能在另一个线程上继续。

锁定是一种同步概念,由于您已经在序列化访问权限,您是否可以拨打ReadText而不是ReadTextAsync?在你的情况下你真的受益于异步吗?