繁体   English   中英

c#FileSystemWatcher和一个计时器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM