[英]c# FileSystemWatcher and a Timer
我有一个奇怪但可能非常简单的问题。
我的程序中有一个timer1
,例如当我单击一个按钮时,该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)它没有计时。
正如我在使用手动按钮或工具栏菜单项之前所说的那样,这里的问题出在哪儿呢?
观察到事件是在后台线程上引发的,这意味着您从错误的线程访问计时器。 (您从未说过timer1
是什么,但我猜它具有线程相似性。)
我认为在这种特殊情况下使用WinForms计时器不是一个好主意,因为@Raymond指出您正在处理不同的线程,并且可能会遇到意外的行为。 您应该考虑改用System.Threading.Timer 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.