每10秒自动保存一次文件

时间:2013-12-20 00:20:56

标签: c# wpf

我是编程新手,还在学习。我想要的是让程序每10秒自动保存一次RTF文件,但我不希望程序通知用户,所以这将在后台完成。程序是用WPF应用程序编写的。我不会发布代码,因为我不确定自己如何开始编写代码。

3 个答案:

答案 0 :(得分:1)

我建议你创建保存文件所需的方法,然后使用后台进程(线程)和计时器来调用你每10秒写一次的方法。

见:

  1. Foreground and Background Threads
  2. Timer Class

答案 1 :(得分:0)

嗯,我建议有一个新的线程定期检查它,当执行保存操作时,它还会在变量中存储当前时间超过10秒,这个变量将被检查,如果currentTime> lastSaveTime你再次保存它。考虑使用后台工作者。此外,我认为你可以使线程休眠10秒并保存文档。然而,上述所有内容对我来说都不优雅,我相信有更好的方法。

答案 2 :(得分:0)

您尝试以下代码,其中richText是文本框的名称,这是一个非常基本和快速的模拟。

    private void startSaveTimer()
    {
        Timer saveTimer = new Timer(10000);
        saveTimer.Elapsed += saveTimer_Elapsed;
        saveTimer.Start();
    }

    private void saveTimer_Elapsed(object sender, ElapsedEventArgs e)
    {
        string filepath = @"C:\yourfilelocation";
        FileStream file = new FileStream(filepath, FileMode.OpenOrCreate);
        new TextRange(richText.Document.ContentStart, richText.Document.ContentEnd).Save(file, DataFormats.Rtf);
    }

在加载富文本框的窗口时,只需调用startSaveTimer即可。

这可能不是最佳做法,但它向您介绍了完成任务的基础知识。