c#文件系统监视器和定时器



我有一个奇怪的,但可能很简单的问题…

我有一个timer1在我的程序,应该启动时,例如,我点击一个按钮。

然而,当我使用FileSystemWatch时,它不会触发timer1,因为某些原因,我似乎无法弄清楚…有什么特殊的东西可以防止计时器被触发吗?

起始时间:

private void toolStripMenuItem2_Click(object sender, EventArgs e)
    {
        timer1.Start();
    }

但是这里没有。

        private void fsw_SS_Created(object sender, FileSystemEventArgs e)
    { 
        fsw_SS.EnableRaisingEvents = false;
        timer1.Start(); 
    }

Visual Studio的智能感知没有显示任何问题,我似乎也找不到解决方案。

定时器设置如下:5000ms的间隔时间,和timer_tick事件(正确设置)。

我的问题是要么1)定时器不启动或2)它不滴答…

这里有什么问题,正如我在使用手动按钮或工具条菜单项之前所说的,它开始很好…

观察到事件是在后台线程上引发的,这意味着您从错误的线程访问计时器。(你从来没有说过timer1是什么,但我猜它有线程亲和性。)

我不认为这是一个好主意,使用WinForms定时器在这种特殊的情况下,@Raymond已经指出,你正在处理不同的线程,可能会遇到意想不到的行为。你应该考虑使用System.Threading.Timer。

最新更新