计时器资源如何沉重?

Chr*_*fer 5 c# timer

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

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

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

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

Ree*_*sey 6

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

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