#c# #multithreading #timer #console
Вопрос:
Я хотел создать метод, который использовал бы таймер и текст ascii и изменял текст, когда таймер достигал 1 секунды, и обратно, когда таймер достигал 2. Я создал этот таймер, но не знал, как его использовать для этого метода. Кто-нибудь может помочь?
public void TimePassed()
{
Timer t1 = new Timer(1000);
t1.Elapsed = Timer_Elapsed;
t1.Start();
Console.ReadKey();
t1.Stop();
}
public void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
timerPlayerOneAnimation ;
Console.WriteLine(timerPlayerOneAnimation " " DateTime.Now);
}
Комментарии:
1. Вы пробовали
Timer_Elapsed
просто проверить время таймера и, если оно больше двух, отменить анимацию? Что-то вродеif(sender is Timer timerObj) if(timerObj.ElapsedTime >= 2000) // do something
Ответ №1:
Просто проверьте, четный или нечетный у вас счетчик?
public void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
// possibly set the cursor position?
Console.SetCursorPosition(someRow, someColumn);
timerPlayerOneAnimation ;
if (timerPlayerOneAnimation % 2 == 0) {
// Display one thing
}
else {
// Display something else
}
}