【问题标题】:Add delay between toggle of the button states (disable and then enable after 5 secs). (Xamarin, c#)在按钮状态切换之间添加延迟(禁用,然后在 5 秒后启用)。 (Xamarin,c#)
【发布时间】:2015-09-09 14:15:56
【问题描述】:

我有一个“开始”按钮,当我单击时,该按钮立即被禁用,我需要延迟 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;
}

这些工作中的任何一个都有效吗?实现延迟(要求)的难易程度。

谢谢!

【问题讨论】:

    标签: c# multithreading xaml xamarin


    【解决方案1】:

    你需要替换 taskA.Wait(5000);等待 Task.Delay(5000)。不要忘记添加 await 关键字,否则该方法将立即返回,即不会等待 5 秒。同时替换 System.Threading.Thread.Sleep(5000);与等待 Task.Delay(5000)

    【讨论】:

      【解决方案2】:

      使用这个:

      await Task.Delay(5000);
      

      【讨论】:

        猜你喜欢
        • 2017-05-21
        • 2023-02-05
        • 1970-01-01
        • 2020-11-22
        • 2011-08-01
        • 2012-05-19
        • 2020-03-13
        • 2020-11-08
        • 1970-01-01
        相关资源
        最近更新 更多