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

Checking if Binary Formatter's Serialize has finished

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

如果需要一些代码:

    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();

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

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

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