Я использую цикл while для изменения цвета светодиода.Я хочу подождать 1 секунду между сменами цвета и не допустить зависания интерфейса.Если я использую await, кажется, просто выйти из цикла.Как еще я могу это сделать?
Я попытался создать внешний метод Wait()
и вызвать его в цикле while.Это удерживает цикл от выхода, но также не ждет 1 секунду и мгновенно меняет цвета.Флаг - это глобальная переменная, которая вызывается кнопкой в другой форме.
private async void LEDLights(int Device)
{
Flag = false;
if (Device == 1)
{
while (Flag == false)
{
//Change LED Colors
ChangeLED(Red);
await Task.Delay(1000);
ChangeLED(Blue);
await Task.Delay(1000);
ChangeLED(Green);
await Task.Delay(1000);
}
}
else
{
}
Flag = false;
}
Я ожидаю, что цикл while будет ждать 1 секунду между сменой цвета и пока не замораживает пользовательский интерфейс, поэтому я могу остановитьЦикл, когда я хочу.Я не получаю никаких ошибок.