我的申请遇到了一点问题。
我想每 10 秒更新一次 UI 上的内容。我首先使用了一个DispatcherTimer
为此,但它会在短时间内阻止我的 UI,因为更新方法需要从网络加载某些内容,并且此操作需要一些时间。
现在我想到了某种后台工作者,然后我发现了BackgroundTasks。
据我正确理解,后台任务的问题是,即使应用程序被挂起,它们也应该充当更新程序。我不需要那个。
我只想在我的应用程序正在运行时进行更新,而不是在其暂停时进行更新。
有没有好的办法解决这个问题呢?
有什么建议吗?
提前致谢!
你需要两件事:
-
Timer
您可以在以下位置更新 UISystem.Timers.Timer间隔 10 秒。
-
调度员
你需要使用Dispatcher.Invoke
无需按住即可更改 UI主用户界面线程。而是方法Process
应该调用单独的线程 (Timer
方法),除了主用户界面线程,并使用Dispatcher
在其中提醒主 UI 线程发生更改。
Process() // method to be called after regular interval in Timer
{
// lengthy process, i.e. data fetching and processing etc.
// here comes the UI update part
Dispatcher.Invoke((Action)delegate() { /* update UI */ });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)