【问题标题】:JSON.net writing to a file asynchronouslyJSON.net 异步写入文件
【发布时间】:2016-02-09 21:27:26
【问题描述】:

我正在 IoT Core 中编写一个 UWP 应用程序,它需要将数据写入 JSON 文件。

string output = JsonConvert.SerializeObject(project, Formatting.Indented);
string filePath = @"path/to/file.json";

File.WriteAllText(filePath, output);

尝试运行程序时,我收到一条错误消息:

不应在 UI 线程上执行同步操作。 考虑将此方法包装在 Task.Run 中。

我意识到同步写入文件是一个坏主意,但我终其一生都无法弄清楚如何异步写入文件。我将如何保存我的 JSON 文件?

【问题讨论】:

    标签: c# asynchronous json.net uwp


    【解决方案1】:

    您可以创建一个FileStream 对象并使用WriteAsync 方法来代替File.WriteAllText

    File.WriteAllText 是一种在内部使用StreamWriter 的便捷方法。这里的 write 方法是同步的。还有StreamWriter uses a FileStream internally :-)

    【讨论】:

      【解决方案2】:

      正如消息所示,您可以这样做:

      Task.Run(() => File.WriteAllText(filePath, output));
      

      MSDN:https://msdn.microsoft.com/en-us/library/hh195051(v=vs.110).aspx

      【讨论】:

        猜你喜欢
        • 2013-03-15
        • 2017-06-07
        • 1970-01-01
        • 2012-08-31
        • 2011-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多