c#FileSystemWatcher和一个Timer

时间:2011-09-30 07:51:11

标签: c# timer filesystemwatcher

我有这个奇怪但也许非常简单的问题..

我的程序中有一个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的Intellisense没有显示任何问题,我似乎也找不到解决方案。

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

我的问题是1)计时器没有启动或2)它没有打勾..

这里有什么问题,正如我之前所说的使用手动按钮或工具条菜单项目开始没问题...

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我不认为在这个特定场景中使用WinForms计时器是个好主意,因为@Raymond已经指出你正在处理不同的线程并且可能会遇到意外的行为。您应该考虑使用System.Threading.Timer代替。