【发布时间】:2019-06-24 22:22:54
【问题描述】:
switch (Pattern[i])
{
case "Blue":
blueButton.BackColor = Color.LightBlue;
Thread.Sleep(1000);
blueButton.BackColor = Color.Red;
break;
case "Lime":
limeButton.BackColor = Color.Aquamarine;
Thread.Sleep(1000);
limeButton.BackColor = Color.Red;
break;
case "Yellow":
yellowButton.BackColor = ColorTranslator.FromHtml("#FFFF80");
Task.Delay(1000).Wait();
yellowButton.BackColor = Color.Red;
break;
case "Red":
redButton.BackColor = Color.Pink;
Task.Delay(1000);
redButton.BackColor = Color.Red;
break;
}
但根本没有延迟......它只是跳过。我尝试同时使用 Task.Delay 和 Thread.Sleep 但实际上没有一个延迟。另外,我是一名新程序员,所以请放轻松。
【问题讨论】:
-
有必要提供您正在解决的实际问题,而不仅仅是您的错误解决方案。
-
你确定值是红色、黄色、石灰还是蓝色?
-
我只是想让它看起来像一个按钮被按下。我检查了它也确实进入了案例。它只是跳过延迟并切换到红色。
-
您切换颜色但阻塞了 UI 线程,因此在 Window 上看不到任何更新。您可以使用 await Task.Delay(1000)