如何在Windows通用应用中使用FileIO.ReadTextAsync以便它是线程安全的?因为尝试类似
的东西lock(lockObject)
{
var data = await ReadTextAsync(fileName);
}
但不支持在await
中使用lock
=(。
答案 0 :(得分:1)
使用SemaphoreSlim
和WaitAsync
方法。
答案 1 :(得分:1)
它不受支持,因为在I / O调用期间没有(托管)线程,并且当前方法将在稍后继续,可能在另一个线程上继续。
锁定是一种同步概念,由于您已经在序列化访问权限,您是否可以拨打ReadText
而不是ReadTextAsync
?在你的情况下你真的受益于异步吗?