我有一个奇怪的,但可能很简单的问题…
我有一个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。