【发布时间】:2020-12-25 11:20:53
【问题描述】:
如果用户在程序仍在运行时关闭程序或启动关机,我正在尝试保存程序状态,但在这种情况下,不等待任务并且程序在写入设置期间终止导致文件损坏。如何在不创建额外的同步保存方法的情况下做到这一点?
private async void Window_Closed(object sender, EventArgs e)
{
await programState.Save();
}
//from programState class
private async Task Save()
{
var state = JsonConvert.SerializeObject(progState, Formatting.Indented);
using (FileStream stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite, FileShare.Read, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan))
{
using (var sw = new StreamWriter(stream))
await sw.WriteAsync(state).ConfigureAwait(true);
}
}
【问题讨论】:
标签: c# .net wpf async-await