我正在运行这样的计时器:
private void InitializeTimer()
{
Timer myTimer = new Timer();
myTimer.Interval = 3000;
myTimer.Enabled = true;
myTimer.Tick += new EventHandler(TimerEventProcessor);
myTimer.Start();
}
它将每隔3秒触发一次事件。我认为事件并不是很重,它是从文件中读取文本,将文本长度与文本框中的文本进行比较,如果文本框中包含更多字符,则会替换文本框中的文本。
但是资源如何重要? 每隔3秒从文件中读取文本是一个坏主意(该文件是纯文本的日志文件)。
答案 0 :(得分:6)
计时器相当轻巧,但它确实依赖于您正在使用哪种类型的计时器。每隔3秒钟启动一次计时器可能不是什么大问题,但如果您使用的是Windows窗体计时器,请确保您的Tick事件处理程序没有进行任何重要的处理,就像在UI线程中一样。 (例如,使用FileInfo.Length
检查文件长度,而不是"读取"文件等)
话虽如此,为了观察日志文件中的更改,FileSystemWatcher
可能比使用计时器并不断重新读取文件更好。除了在文件更改时立即通知您,它还将使您不必不断阅读文件。
答案 1 :(得分:0)
我认为它会像你制作TimerEventProcessor
处理程序一样沉重。虽然FileSystemWatcher
似乎可能是答案,但情况并非总是如此。我的建议是在处理这个处理程序之前,你停止计时器并在你完成代码处理后重启它。