我有一个"开始"按钮,当我点击时,按钮立即被禁用,我需要延迟5秒才能启用按钮。
开始按钮(启用)----单击---->开始按钮(禁用)------等待5秒------>开始按钮(已启用)。
我正在使用按钮点击处理程序:
我尝试了以下方法:
public async void OnStartClick(object sender, EventArgs e)
{
Button button = (Button) sender;
button.IsEnabled = false;
Task taskA = Task.Factory.StartNew(() => DoSomeWork(10000000));
taskA.Wait(5000);
button.IsEnabled = true;
}
static void DoSomeWork(int val)
{
Thread.SpinWait(val);
}
public async void OnStartClick(object sender, EventArgs e)
{
Button button = (Button) sender;
button.IsEnabled = false;
System.Threading.Thread.Sleep(5000);
button.IsEnabled = true;
}
是否有任何工作,并且很容易实现延迟(要求)。
谢谢!
答案 0 :(得分:3)
您需要替换taskA.Wait(5000);等待Task.Delay(5000)。不要忘记添加await关键字,否则该方法将立即返回,即它不会等待5secs。也替换System.Threading.Thread.Sleep(5000);等待Task.Delay(5000)
答案 1 :(得分:0)
使用此:
await Task.Delay(5000);