у меня есть следующий вопрос в моем коде, у меня этот цикл работает по таймеру (это лишь малая часть из петель, которые работают на большом таймере),Как заставить таймер продолжать работать, пока цикл ждет другого результата?
внутри этого большого таймера (он галочка каждого 1 во-вторых) у меня есть 1 метод, которому нужно подождать 5 секунд, а затем продолжить с остальным кодом цикла, но я хочу, чтобы он не застрял в коде, и таймер будет продолжать работать каждые 1сек и не будет ждать этих 5 секунд.
что я сделал, добавляю новый таймер (timer_deva), который гаснет каждые 5 секунд и выполняет все проверки внутри него, а затем таймер останавливается.
поэтому моя проблема в том, что мне нужно подождать 5 секунд, чтобы получить значение для завершения моего кода, но мне нужно, чтобы мой главный таймер продолжал работать одновременно, и когда он получит свой результат в другое время, ему нужно будет завершить код, который он оставил.
спасибо заранее,
else if (mobID.Equals(Convert.ToInt32(txtDeva)))
{
//START CHECK WITH TIMER
timer_deva.Start();
//Methods inside timer_deva update the winnerNation
//END CHECK TIMER - GET RESULT
winner(zoneId, winnerNation, humansKills, orcKills);
}
Что должно произойти, когда таймер снова гаснет, пока он все еще ждет второго таймера?Я полагаю, вы могли бы создать новую задачу на 'timer_Tick()', которая будет ждать завершения второго таймера. Таким образом, ваш таймер не остановится, и ваша задача будет работать в другом потоке и все закончится вместе, когда отметит второй таймер. – Nolonar
Вы хотите создать новый поток, чтобы вызвать timer_deva? – Dan272
Я бы не создал новую нить для такого тривиального вопроса. Вместо этого используйте [Задачи] (http://msdn.microsoft.com/en-us/library/system.threading.tasks.task.aspx). Однако требуется .NET 4 или новее. Нитки очень дороги, а задачи довольно дешевы. – Nolonar