Csharp/C#教程:用于更新UI的后台计时器?分享


用于更新UI的后台计时器?

我的申请有点问题。
我想每隔10秒在我的UI上更新一些内容。 我首先使用DispatcherTimer ,但它会在短时间内阻止我的UI,因为更新方法需要从Web加载一些东西,这个操作需要一些时间。 现在我想到了某种背景工作者,我找到了BackgroundTasks。
就我理解的而言,后台任务的问题是,即使应用程序被暂停,它们也应该作为更新程序。 我不需要那个。 我只想更新我的应用程序是否正在运行,如果它被暂停。

有没有好办法解决这个问题? 有什么建议可以用于此吗?

提前致谢!

你需要两件事:

  1. 计时器

    您可以使用10秒间隔更新System.Timers.Timer的UI。

  2. 调度员

    您需要使用Dispatcher.Invoke来更改UI而不保留主UI线程 。 相反,应该在除主UI线程之外的单独线程Timer方法)上调用Process方法,并在其中使用Dispatcher来警告主UI线程以进行更改。

     Process() // method to be called after regular interval in Timer { // lengthy process, ie data fetching and processing etc. // here comes the UI update part Dispatcher.Invoke((Action)delegate() { /* update UI */ }); } 

您需要创建一个运行代码部分的线程,该线程从网站获取并处理信息。 这样,您的表单将毫不犹豫,因为它将与处理部分位于不同的线程上。

关于代码项目的这篇文章应该让你入门。

此外,您可以启动计时器,该计时器具有已发生的事件,每次计时器超过某个时间周期时都会发生。

上述就是C#学习教程:用于更新UI的后台计时器?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  1. https://www.dotnetperls.com/timer

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1003097.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐