更改视频的简单应用程序。
在诊断工具中运行时,CPU上升并保持约50% (任务管理器5%),直到停止,另一次运行保持在5% (任务管理器小于1%)。
代码一直都是一样的。视频的格式是相同的。
在性能分析器中,我看到正在调用WaitForSingleObjectEx和ReleaseSemaphore的nvwgf2umx.dll (nvidia) 100%正在使用中。
为什么每次随机运行都会得到两种不同的CPU消耗?
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
_playlist = new MediaPlaybackList();
foreach (var uri in _uris)
{
_playlist.Items.Add(new MediaPlaybackItem(MediaSource.CreateFromUri(uri)));
}
_mediaPlayer = new MediaPlayer
{
IsLoopingEnabled = true,
AutoPlay = false,
IsMuted = true,
Source = _playlist,
};
_mediaPlayer.SetSurfaceSize(new Size(512, 512));
_visual = ElementCompositionPreview.GetElementVisual(this);
_compositor = _visual.Compositor;
_surfaceVideoBrush = _compositor.CreateSurfaceBrush(_mediaPlayer.GetSurface(_compositor).CompositionSurface);
_surfaceVideoBrush.Stretch = CompositionStretch.UniformToFill;
_spriteVisualVideo = _compositor.CreateSpriteVisual();
_spriteVisualVideo.Size = new Vector2(512, 512);
_spriteVisualVideo.Brush = _surfaceVideoBrush;
ElementCompositionPreview.SetElementChildVisual(Grid, _spriteVisualVideo);
_timer.Tick += _timer_Tick;
_timer.Start();
}
private void _timer_Tick(object sender, object e)
{
_timer.Interval = TimeSpan.FromMilliseconds(Random.Next(200, 2000));
NextVideo();
}
private void NextVideo()
{
_mediaPlayer.Pause();
_playlist.MoveTo((uint)Random.Next(0, 15));
_mediaPlayer.Play();
}XAML只有1个Grid
PC - i7 4770,nVidia GTX9700
发布于 2016-12-06 01:04:44
看起来像是Visual Studio 2015中的一个bug。如果我打开这个项目并运行代码- CPU就会启动。如果我在运行代码时切换到Visual Studio中的设计器视图并等待它被加载- CPU会回落,一切都正常。
https://stackoverflow.com/questions/40808746
复制相似问题