异步写入文件 JSON.net



我正在 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 文件?

您可以创建一个FileStream对象并使用 WriteAsync 方法,而不是使用 File.WriteAllText

File.WriteAllText是一种在内部使用StreamWriter的便捷方法。这里的写入方法是同步的。StreamWriter在内部使用FileStream:-)

正如消息所建议的那样,您可以执行以下操作:

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

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

相关内容

  • 没有找到相关文章

最新更新