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