1. A method for saving a document in a background save thread while editing the document in a foreground thread, comprising the steps of: detecting a background save; checking whether a foreground event has occurred; and if the foreground event has not occurred, then transferring control to the background save thread and saving the document in the background save thread.