gpt4 book ai didi

c# - 检查 Binary Formatter 的序列化是否已完成

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:16 24 4
gpt4 key购买 nike

是否可以检查二进制格式化程序的 Serialize() 是否已完成写入文件?我正在尝试在 Unity 中制作一个保存/加载系统,并决定使用二进制格式化程序,但我不确定如何检查序列化是否完成。我不希望玩家在游戏仍在加载时退出游戏,理想情况是在保存(序列化)完成后通知玩家,然后他们才能继续。

如果需要一些代码:

    BinaryFormatter binaryFormatter = new BinaryFormatter();
FileStream fileStream = new FileStream(Application.persistentDataPath + "/player.sav", FileMode.Create);

PlayerData playerData = new PlayerData(player);
binaryFormatter.Serialize(fileStream, playerData);
fileStream.Close();

最佳答案

我们在我的公司所做的是,任何时候我们写入磁盘,我们写入一个临时位置,只有当完整操作完成时,我们才会执行文件移动/替换操作。

这是最安全、最简单的实现方式。如果用户退出而写入仍在进行中,则不会出现任何问题。

此外,如果在写入过程中出现任何异常,则不会损坏任何内容。

关于c# - 检查 Binary Formatter 的序列化是否已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50732535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com