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

标签 .net wpf timer

我有一个简单的应用程序,其中包含媒体元素,并且可以一个接一个地播放一些电影。我想在一部电影停止播放和下一部开始播放之间有 15 秒的延迟。
我是 WPF 的新手,虽然我知道如何使用 Timer 和 control.Invoke 以旧的(WinForms)方式执行此操作,但我认为 WPF 中必须有更好的方法。在那儿?

最佳答案

DispatcherTimer是你想要的。在本例中,您将创建一个间隔为 15 秒的 DispatcherTimer,开始第一个视频。然后当该视频完成时启用计时器并在滴答事件中显示下一个视频,并将计时器设置为禁用,因此它不会每 15 秒触发一次。 DispatcherTimer 位于 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();
}

关于.net - 在 WPF 中处理时间驱动事件的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531805/

相关文章:

c# - .net XMS 中的 IBM-MQ 阅读器用于逐一确认已处理的消息

c# - GDI+ 在基线上绘制不同大小的文本存在 off-by-1px 问题

.net - 学习Win32开发GUI应用程序

.net - 从父控件设置 WPF 嵌套控件属性

c# - 如何拉伸(stretch)图像以填充此 WPF/XAML 应用程序?

c# - 为 Visual Studio 编写解决方案分析器

C++ 类 - 每 N 毫秒递增和递减属性

c# - .NET 计时器不准确?

javascript - 如何在for循环中设置延迟

wpf - 使用 WPF 延迟输入验证