Я пытаюсь создать приложение Windows Form, которое ищет строку и имеет три возможных сценария:
- Строка 1 найдена - подождите
- Строка 2 найдена - остановка
- Остальное - выполнить действие и подождать 1 минуту
Я сталкиваюсь с моей проблемой только в те моменты, когда ожидается ее ожидание. Когда это происходит, newTimer_Tick начинает тикать каждую секунду. Я пытался отключить таймер, когда он тикает, и некоторые другие вещи, но ни один из них не работал. Ниже приведен код:
public void Action(string result)
{
if (result.Contains("string1"))
{
// Check again in 10 + x seconds
int n = new Random().Next(0, 5000);
int newtime = 10000 + n;
newTimer.Tick += new EventHandler(newTimer_Tick);
newTimer.Interval = newtime;
newTimer.Enabled = true;
}
else if (result.Contains("string2"))
{
// Turn off
newTimer.Enabled = false;
}
else
{
// Perform action and tick again in 1min + x seconds
action1();
int n = new Random().Next(0, 5000);
int newtime = 600000 + n;
newTimer.Tick += new EventHandler(newTimer_Tick);
newTimer.Interval = newtime;
newTimer.Enabled = true;
}
}
private void newTimer_Tick(object sender, EventArgs e)
{
Action( result );
}
Что я сделал не так?