Я взломал код для Xournal, чтобы добавить функцию автоматического сохранения. Моя первоначальная реализация была очень тупой: каждые 60 или около того секунд, сохраняйте. Функция якобы работает.Реализация автосохранения без нарушения
Однако, после проверки на какое-то время, я заметил, что при автоматическом сохранении приложение временно замерзает, что довольно неприятно, если вы находитесь в середине хода пера. Я пытаюсь понять, как это исправить.
Одна из возможностей, которую я придумал, - это автосохранение, чтобы проверить, не касается ли пером экрана перед автосохранением; если он коснулся, приложите один раз только обратный вызов, запланированный на секунду после поднятия пера. (если происходит то же самое, повторите). Другой возможностью было бы оптимизировать функцию сохранения достаточно, чтобы не было пробела (кажется маловероятным).
У кого-нибудь есть предложения по этому вопросу? Xournal использует инструментарий Gnome/GTK, и написан на C.
Update: Я реализовал логику анти-затирать, и я очень доволен результатом автосохранения детализации и производительности. Одна из тех времен нитей (к счастью) не нужна! Спасибо всем за ваши предложения.
Интересно, могу ли я сделать это так, чтобы не было никаких проблем с обсуждением. Насколько я могу судить, структура данных полностью связана списками. Это может быть проблемой для другого вопроса. –