.net 在WPF中处理时间驱动事件的最佳方法是什么

.net 在WPF中处理时间驱动事件的最佳方法是什么,.net,wpf,timer,.net,Wpf,Timer,我有一个简单的应用程序,里面有媒体元素,它播放一些电影,一部接一部。我想在一部电影停止播放和下一部电影开始之间有15秒的延迟。 我是WPF的新手,虽然我知道如何使用计时器和控件.Invoke使用旧的(WinForms)方法来实现这一点,但我认为WPF中一定有更好的方法。有吗?这就是你想要的。在本例中,您将创建一个间隔为15秒的Dispatcher,启动第一个视频。然后,当该视频完成后,启用计时器,并在勾号事件中显示下一个视频,并将计时器设置为禁用,使其不会每15秒触发一次。Dispatcherm

我有一个简单的应用程序,里面有媒体元素,它播放一些电影,一部接一部。我想在一部电影停止播放和下一部电影开始之间有15秒的延迟。 我是WPF的新手,虽然我知道如何使用计时器和控件.Invoke使用旧的(WinForms)方法来实现这一点,但我认为WPF中一定有更好的方法。有吗?

这就是你想要的。在本例中,您将创建一个间隔为15秒的Dispatcher,启动第一个视频。然后,当该视频完成后,启用计时器,并在勾号事件中显示下一个视频,并将计时器设置为禁用,使其不会每15秒触发一次。Dispatchermer位于System.Windows.Threading命名空间中

DispatcherTimer yourTimer = new DispatcherTimer();

yourTimer.Interval = new TimeSpan(0, 0, 15); //fifteen second interval
yourTimer.Tick += new EventHandler(yourTimer_Tick);
firstVideo.Show();
假设视频结束时触发了一个事件,然后设置

yourTimer.Enabled = True;
然后在yourTimer.Tick事件处理程序中

private void yourTimer_Tick(object sender, EventArgs e)
{
    yourTimer.Enabled = False;//Don't repeat every 15 seconds
    nextVideo.Show();
}

它是在UI线程上执行,还是必须像普通计时器一样执行control.Invoke?