我有这个奇怪但也许非常简单的问题..
我的程序中有一个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)它没有打勾..
这里有什么问题,正如我之前所说的使用手动按钮或工具条菜单项目开始没问题...
答案 0 :(得分:1)
观察事件是在后台线程上引发的,这意味着您正在从错误的线程访问计时器。 (你从来没有说过timer1
是什么,但我猜它有线程亲和力。)
答案 1 :(得分:0)
我不认为在这个特定场景中使用WinForms计时器是个好主意,因为@Raymond已经指出你正在处理不同的线程并且可能会遇到意外的行为。您应该考虑使用System.Threading.Timer代替。