Я бы вообще не использовал таймер, его дополнительный багаж.Из того, что я прочитал, вы хотите иметь два потока: пользовательский интерфейс и фоновый поток.
Итак, фоновый поток управляет интервалом вместо таймера.
Код Psuedo:
YourFileChecker checker = new YourFileChecker();
checker.CheckInterval = 60000; //milliseconds, the background thread will manage the interval
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(checker.Check));
t.Start();
Затем метод Check должен выполнить что-то вроде этого:
while(!_Stop)
{
//Do your work here
//Wait the specified interval before checking again...
Thread.Sleep(_CheckInterval);
}
Фоновый поток теперь просто продолжает проверку, пока ему не сообщат (не сообщат), что он остановился.Тогда вам вообще не нужен таймер, потому что поток управляет интервалом.