Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MediaElement和thread.sleep出现问题_C#_Wpf - Fatal编程技术网

C# MediaElement和thread.sleep出现问题

C# MediaElement和thread.sleep出现问题,c#,wpf,C#,Wpf,我正在从组合框中进行选择更改。当该事件发生时,我想播放一个媒体文件,暂停5秒钟,然后播放另一个媒体文件。实际发生的是有5秒的停顿。然后只播放第二个媒体文件(vb.mp4)。我做错了什么 private void cmb_adGroupZoneOne_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.mediaElement.Source = new Uri("C:/fb.mp4");

我正在从组合框中进行选择更改。当该事件发生时,我想播放一个媒体文件,暂停5秒钟,然后播放另一个媒体文件。实际发生的是有5秒的停顿。然后只播放第二个媒体文件(vb.mp4)。我做错了什么

private void cmb_adGroupZoneOne_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
       this.mediaElement.Source = new Uri("C:/fb.mp4");
       this.mediaElement.LoadedBehavior = MediaState.Manual;
       this.mediaElement.Play();

       System.Threading.Thread.Sleep(5000);

       this.mediaElement.Source = new Uri("C:/vb.mp4");
       this.mediaElement.LoadedBehavior = MediaState.Manual;
       this.mediaElement.Play();
    }

私有无效cmb\u adGroupZoneOne\u选择已更改(对象发送方,选择已更改数据源)
{
this.mediaElement.Source=新Uri(“C:/fb.mp4”);
this.mediaElement.LoadedBehavior=MediaState.Manual;
this.mediaElement.Play();
}
私有void mediaElement_MediaEnded(对象发送方,RoutedEventArgs e)
{
系统线程线程睡眠(5000);
this.mediaElement.Source=新Uri(“C:/vb.mp4”);
this.mediaElement.LoadedBehavior=MediaState.Manual;
this.mediaElement.Play();
}
Play()
可能没有阻塞,这意味着当程序调用
Play
时,它会立即继续并休眠,然后播放第二个mp4。您错过了第1 mp4的播放。不确定你能在一个线程上完成你想做的事情。尝试启动第一个mp4,然后收听
MediaEnded
事件并从那里启动第二个mp4。
<MediaElement Name="mediaElement" MediaEnded="mediaElement_MediaEnded"  />

private void cmb_adGroupZoneOne_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
       this.mediaElement.Source = new Uri("C:/fb.mp4");
       this.mediaElement.LoadedBehavior = MediaState.Manual;
       this.mediaElement.Play();

    }


private void mediaElement_MediaEnded(object sender, RoutedEventArgs e)
{

       System.Threading.Thread.Sleep(5000);

       this.mediaElement.Source = new Uri("C:/vb.mp4");
       this.mediaElement.LoadedBehavior = MediaState.Manual;
       this.mediaElement.Play();  
}