In order to give my application an autosave functionality, I'm looking at the best implementation that would optimise the 3 followings requirements:
I have three solutions witch doesn't fit the 3 criteria and I'm looking for an alternative:
Does someone have anything to suggest?
For autosave, I'd simply have a background running thread that would run your Save() method silently (no popups) to a temp location (AppData system folder). You should probably keep a separate file for each session, so that you can always offer to return to a previous crashed session. On normal exit, you should delete the file to indicate the session has completed successfully.
I'd even keep 2 files for every session an alternate saving to each, so that if a crash happens during an autosave, it won't corrupt the previous autosave.