我试图通过在这个按钮上等待x秒来点击按钮,然后执行他的操作,我在Win-form
中使用System.Windows.Forms.Timer
来进行,但如何在WPF中进行同样的操作
我让这个功能等待5秒钟,然后再采取一些行动
private System.Windows.Forms.Timer MTimer = new System.Windows.Forms.Timer();
private void StartAsyncTimedWork()
{
MTimer.Interval = 5000;
MTimer.Tick += new EventHandler(MTimer_Tick);
MTimer.Start();
}
我如何在Wpf中做同样的事情,让用户用鼠标点击按钮,等待5秒钟后再执行按钮操作,请给我一个链接或代码。
您可以使用DispatcherTimer
,但使用async
方法和Task.Delay
:可能是最简单的
public async void Foo(object sender, RoutedEventArgs e)
{
await Task.Delay(5000);
DoSomething();
}
窗口中tmer的替代项形成DispatcherTimer控件。它做的几乎是一样的事情,但不是把它放在表单上,而是专门从代码背后创建和使用它。
DispatcherTimer
您也可以使用Observable语法:
Observable.Interval(TimeSpan.FromSeconds(1)).Subscribe(x => // do something here like
Console.WriteLine(x));