计时器资源如何沉重?

时间:2012-07-09 18:30:40

标签: c# timer

我正在运行这样的计时器:

    private void InitializeTimer()
    {
        Timer myTimer = new Timer();
        myTimer.Interval = 3000;
        myTimer.Enabled = true;
        myTimer.Tick += new EventHandler(TimerEventProcessor);
        myTimer.Start();
    }

它将每隔3秒触发一次事件。我认为事件并不是很重,它是从文件中读取文本,将文本长度与文本框中的文本进行比较,如果文本框中包含更多字符,则会替换文本框中的文本。

但是资源如何重要? 每隔3秒从文件中读取文本是一个坏主意(该文件是纯文本的日志文件)。

2 个答案:

答案 0 :(得分:6)

计时器相当轻巧,但它确实依赖于您正在使用哪种类型的计时器。每隔3秒钟启动一次计时器可能不是什么大问题,但如果您使用的是Windows窗体计时器,请确保您的Tick事件处理程序没有进行任何重要的处理,就像在UI线程中一样。 (例如,使用FileInfo.Length检查文件长度,而不是"读取"文件等)

话虽如此,为了观察日志文件中的更改,FileSystemWatcher可能比使用计时器并不断重新读取文件更好。除了在文件更改时立即通知您,它还将使您不必不断阅读文件。

答案 1 :(得分:0)

我认为它会像你制作TimerEventProcessor处理程序一样沉重。虽然FileSystemWatcher似乎可能是答案,但情况并非总是如此。我的建议是在处理这个处理程序之前,你停止计时器并在你完成代码处理后重启它。