OpenStreamForWriteAsync Doesn't finish

本文关键字:finish Doesn OpenStreamForWriteAsync | 更新日期: 2023-09-27 18:30:37

我正在尝试将序列化对象保存到文件中。当我调用 OpenStreamForWriteAsync 方法时,UI 会锁定,并且该过程似乎永远不会结束。不知道我在这里做错了什么。

            public async Task<string> Save(string fileName)
    {
        MemoryStream ms = new MemoryStream();
        var serializer = new DataContractSerializer(typeof(Settings));
        serializer.WriteObject(ms, this);
        ms.Position = 0;
        try
        {
            using (var fms = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(fileName, CreationCollisionOption.ReplaceExisting))
            {
                serializer.WriteObject(fms, this);
                return "Saved successfully";
            }
        }
        catch
        {
            return "Could not save.";
        }
    }

这是我关于StackOverflow的第一个问题,但已经学习了很长时间。任何帮助表示赞赏。

OpenStreamForWriteAsync Doesn't finish

发现问题。调用此方法时我没有等待。需要使用以下命令调用该方法:

string result =  await Settings.Save("settings.xml");

将方法重命名为SaveAsync作为提醒。