Здравствуйте.
Есть таймер, объявленный как:
static Timer timer = new Timer(60000)
{
AutoReset = false
};
В одном из методов я его выключаю:
timer.Enabled = false;
И вывожу в консоль состояние:
Console.WriteLine(timer.Enabled);
И получаю: False.
Затем вызывается другой метод, в котором код
Console.WriteLine(timer.Enabled);
Показывает True, из-за чего это может быть?
п.с. - программа многопоточная, но это не особо важно, т.к. даже на MSDN написано, что таймеры - потокобезопасны.
п.с.с. - Enable = true таймеру не может быть назначен нигде, кроме одного метода (проверено даже через "Найти все ссылки"), который вызывается только 1 раз и не может быть вызван пока таймер работает.
Так же замечу, что Elapsed ивент вызывается 2 раза, из метода, где выключается таймер (стоит прямой вызов МЕТОДА, а не ивента) и когда проходит заданное время.
Но таймер можно остановить и он остановится лишь в том методе, который показывает, что таймер включен, хотя до этого он был выключен.