从计时器线程更新WPF UI

长寿

在应用程序中,我显示横幅,横幅会随着时间的推移或用户单击下一个/上一个而旋转。

1)我需要更新Timer.Elapsed方法内的UI元素从我发现的结果来看,似乎计时器滴答是在自己的线程上执行的,应该使用元素的分派器来更新UI。

( (Image)BannerPanel.Content ).Dispatcher.Invoke( new Action( () => {
    ( (Image)BannerPanel.Content ).Source = GetImage( new Uri( banner.Uri, UriKind.Absolute ) );
} ) );

但这会引发一个错误InvalidOperationException

2)标语控制器提供了NextPrevious方法,当被称为分别显示下一个/上一个标语时。至于DisplayBanner方法试图显示横幅广告和当该文件中没有找到它会尝试使用它重新下载WebClientAsyncFileDownload并在DownloadComplete其显示图像。我是否正确地假设,Elapsed由计时器触发和Next/的手动调用Previous会同时在它们自己的线程(Previous/Next在UI线程和ElapsedTimer线程)上运行,并且可能同时引起不稳定,所以这两者同时发生吗?

Toadflakz

您应该研究使用DispatcherTimer类而不是常规类Timer它设计用于WPF UI,仅用于这些类型的用途,因为它在Dispatcher线程上运行

更多信息:System.Windows.Threading.DispatcherTimer

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

再次 UI 线程和计时器

来自分类Dev

使用 UI 线程上的计时器更新标签文本,而不会阻塞 UI

来自分类Dev

使用WPF MVVM实施和显示UI计时器

来自分类Dev

使用WPF MVVM实施和显示UI计时器

来自分类Dev

如何创建在后台运行的计时器而不用Xamarin阻止UI线程?

来自分类Dev

WPF线程麻烦更新UI

来自分类Dev

WPF线程麻烦更新UI

来自分类Dev

未链接到UI的UWP App中的计时器

来自分类Dev

在UI Unity上显示TimeSpan计时器

来自分类Dev

非UI线程上的WPF分派器

来自分类Dev

非UI线程上的WPF分派器

来自分类Dev

C#WinForms:-当UI进行其他操作时,为什么没有经过线程计时器滴答事件?

来自分类Dev

用C ++(线程或计时器)进行游戏更新?

来自分类Dev

Android-从计时器线程更新位图

来自分类Dev

在MVVM-WPF中更新DataContext的计时器

来自分类Dev

GMap.NET WPF 标记计时器更新

来自分类Dev

如何从线程更新UI

来自分类Dev

从代码更新UI线程

来自分类Dev

带有角度计时器的角度ui-bootstrap进度栏未显示值

来自分类Dev

带有计时器的Xamarin Android UI对更改没有反应

来自分类Dev

在RecyclerView中设置倒数计时器而不影响Android中的UI的最佳方法是什么?

来自分类Dev

计时器更新标签

来自分类Dev

WPF双向绑定和从后台线程更新UI

来自分类Dev

WPF双向绑定和从后台线程更新UI

来自分类Dev

我应该用来在UI中显示countdowntimer并在时间结束后进行一些操作的处理程序,计时器,计时器任务或countdowntimer?

来自分类Dev

WPF UI冻结-UI线程冲突?

来自分类Dev

WPF分派器VS Winform UI线程控制调用

来自分类Dev

WPF更新UI从RefreshEvent

来自分类Dev

WPF更新UI从RefreshEvent

Related 相关文章

热门标签

归档