Wpf 检测图像控件是否已完成其图像更新

Wpf 检测图像控件是否已完成其图像更新,wpf,image,dispatcher,Wpf,Image,Dispatcher,背景:我正在以大于60Hz的频率显示来自高速数码相机的实时图像。通过更新图像控件的ImageSource显示实时图像: this.Dispatcher.Invoke(DispatcherPriority.Normal,(ThreadStart)delegate() { MyImage.Source = myNewBitMapImage; }); 问题:如果屏幕上还没有显示以前的图像,我想通过跳过任何新图像来提高应用程序的性能。例如,当映像控制(MyImage)尚未完成更新最后一个映像时,将跳

背景:我正在以大于60Hz的频率显示来自高速数码相机的实时图像。通过更新图像控件的ImageSource显示实时图像:

 this.Dispatcher.Invoke(DispatcherPriority.Normal,(ThreadStart)delegate() { MyImage.Source = myNewBitMapImage; });
问题:如果屏幕上还没有显示以前的图像,我想通过跳过任何新图像来提高应用程序的性能。例如,当映像控制(MyImage)尚未完成更新最后一个映像时,将跳过上述调度程序调用,直到MyImage再次变为“空闲”

我在MFC中也做了类似的事情,使用getUpdate直立()检查是否还有一个区域需要更新,如果还有,则跳过新图像的显示

问题:如何在WPF中实现相同的目标?这样,如果图像控件尚未完成更新最后一个图像,则跳过新图像


感谢advace。

经过一些研究和测试,我意识到这可以通过dispatcher启动一个Backgroundworker来实现。基本上,“MyImage.Source=myNewBitMapImage”是在工作人员的工作中处理的,只要工作人员忙,就会跳过下一个映像。希望这能有所帮助。

当您设置
MyImage.Source时,图像是否已下载?还是仍在下载?你可以检查一下酒店。您多久更新一次图像?我假设在创建图像时IsDownload是真的(如果我错了,请纠正我)?如果是这种情况,则不是,图像在传递到MyImage.Source时已经创建。