c # FileSystemWatcher и таймер - PullRequest
       21

c # FileSystemWatcher и таймер

0 голосов
/ 30 сентября 2011

У меня странная, но, может быть, очень простая проблема ..

В моей программе есть 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(); 
    }

Intellisense в Visual Studio не показывает никаких проблем, и я не могу найти решение там.

Настройки таймера следующие: Интервал 5000ms и событие timer_tick (настроено правильно).

Моя проблема: 1) таймер не запускается или 2) не срабатывает ..

Что здесь не так, как я уже говорил перед использованием кнопки меню или кнопки панели инструментов, все начинается нормально ...

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

Обратите внимание, что события генерируются в фоновом потоке, что означает, что вы обращаетесь к таймеру из другого потока.(Вы никогда не говорили, что такое timer1, но я предполагаю, что оно имеет сродство с нитями.)

0 голосов
/ 30 сентября 2011

Не думаю, что в этом конкретном сценарии целесообразно использовать таймер WinForms, поскольку @Raymond указал, что вы имеете дело с разными потоками и можете столкнуться с неожиданным поведением.Вам следует рассмотреть возможность использования System.Threading.Timer .

...