【问题标题】:Thread safe async file writе with FileIO.ReadTextAsync使用 FileIO.ReadTextAsync 写入线程安全异步文件
【发布时间】:2015-01-26 22:34:16
【问题描述】:

如何在 Windows 通用应用程序中使用 FileIO.ReadTextAsync 以使其成为线程安全的?因为尝试类似的东西

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

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

【问题讨论】:

  • 为什么需要lock

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


【解决方案1】:

使用SemaphoreSlimWaitAsync 方法。

【讨论】:

    【解决方案2】:

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

    锁是一个同步的概念,既然你已经在序列化访问,你可以只调用ReadText而不是ReadTextAsync吗?在您的情况下,您真的从异步中受益吗?

    【讨论】:

    • 不使用异步的聪明想法。 +1
    猜你喜欢
    • 1970-01-01
    • 2012-04-26
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    相关资源
    最近更新 更多