В моем приложении для Windows запущено несколько таймеров.Каждый timer_tick запускает код.Сейчас я работаю над двумя процессами.
private async void tmrProcessDelay_Tick
private async void tmrAutopay_Tick
Совсем недавно добавили tmrAutopay
как добавленный процесс, так что вместо последовательного процесса я заставил их работать одновременно.У меня проблема в том, что я не могу перезапустить процесс автооплаты.
Таймеры объявляются вверху как экземпляр при загрузке формы.
private System.Windows.Forms.Timer tmrProcessDelay = new System.Windows.Forms.Timer();
private System.Windows.Forms.Timer tmrAutopay = new System.Windows.Forms.Timer();
tmrAutopay.Interval = 2000;
tmrAutopay.Enabled = false;
tmrAutopay.Tick += new EventHandler(tmrAutopay_Tick);
private async void tmrAutopay_Tick(object sender, EventArgs e)
{
messagebox("tick"); // correcting this one
txtNotes.AppendText("tick");
tmrAutopay.Enabled = false;
// do some code
tmrAutopay.Enabled = true;
}
РЕДАКТИРОВАТЬ: в соответствии с Майкл Рэндалл предложение, я попытался добавить точку останова в верхней части.Я получил вопрос.Просто по логике.Я просто подумал, что он не начинается снова, потому что «галочка» добавляется только один раз, поэтому я предположил, что он запускается только один раз.Когда я продолжил добавлять точку останова, она снова отмечалась, но по какой-то причине это не appendText
, потому что я все-таки принял на себя.Возвращаясь к проблеме, из-за существующей логики, после того, как
- вызвал тик один - appendtext
- enabled = true - отмечен, но не добавлен
- из-залогика, он не перешел к enabled = true снова
Тик таймера запускается только после того, как я включил его в первый раз, затем, когда его тики, я установил в false, чтобы сделать некоторый код, затем запустить егоснова после окончания.
Я еще не попробовал это решение системного таймера , а также видел сообщение о том, что таймеры не будут работать в фоновом режиме, так как я могу запустить его один раз, значит, можно.Но я просто хочу спросить, прежде чем менять таймеры, есть ли причины, по которым у меня возникла эта проблема?