为了添加自动保存功能,我一直在修改 Xournal 的代码。我最初的实现非常愚蠢:每 60 秒左右进行一次保存。该功能表面上有效。
然而,在测试了一段时间后,我注意到当自动保存运行时,应用程序会暂时冻结,如果你正处于笔画的中间,这会很烦人。我试图弄清楚如何解决这个问题。
我想到的一种可能性是自动保存在自动保存之前检查笔是否正在触摸屏幕;如果它被触摸,请附加一个仅在笔抬起后一秒钟安排的一次回调。(如果发生同样的事情,重复)。另一种可能性是充分优化保存功能,以便没有间隙(似乎不太可能)。
有人对此有什么建议吗?Xournal 使用 Gnome/GTK 工具包,并用 C 编写。
更新:我实现了反破坏逻辑,我对由此产生的自动保存粒度和性能非常满意。其中一个时间线程(谢天谢地)是不必要的!谢谢大家的建议。