当前位置: 首页 > news >正文

网站频道规划关键词排名优化软件

网站频道规划,关键词排名优化软件,泰安网站建设与优化,建设网站建设多少钱https://www.zhihu.com/tardis/bd/art/430630047?source_id1001 在 WinForms 中,有一个名为 Timer 的控件,它可以在给定的时间间隔内重复执行一个操作。WPF 也有这种可能性,但我们有DispatcherTimer控件,而不是不可见的控件。它几…

https://www.zhihu.com/tardis/bd/art/430630047?source_id=1001

在 WinForms 中,有一个名为 Timer 的控件,它可以在给定的时间间隔内重复执行一个操作。WPF 也有这种可能性,但我们有DispatcherTimer控件,而不是不可见的控件。它几乎做同样的事情,但不是将它放在表单上,​​而是专门从代码隐藏代码中创建和使用它。

DispatcherTimer 类的工作方式是指定一个时间间隔,然后订阅每次满足该时间间隔时将发生的Tick事件。在调用Start()方法或将IsEnabled属性设置为 true之前,不会启动 DispatcherTimer 。

让我们尝试一个简单的例子,我们使用 DispatcherTimer 创建一个数字时钟:

<Window x:Class="WpfTutorialSamples.Misc.DispatcherTimerSample"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="DispatcherTimerSample" Height="150" Width="250"><Grid><Label Name="lblTime" FontSize="48" HorizontalAlignment="Center" VerticalAlignment="Center" /></Grid>
</Window>
using System;
using System.Windows;
using System.Windows.Threading;namespace WpfTutorialSamples.Misc
{public partial class DispatcherTimerSample : Window{public DispatcherTimerSample(){InitializeComponent();DispatcherTimer timer = new DispatcherTimer();timer.Interval = TimeSpan.FromSeconds(1);timer.Tick += timer_Tick;timer.Start();}void timer_Tick(object sender, EventArgs e){lblTime.Content = DateTime.Now.ToLongTimeString();}}
}

XAML 部分非常简单——它只是一个带有大字体的居中标签,用于显示当前时间。

在这个例子中,代码隐藏是魔法发生的地方。在窗口的构造函数中,我们创建了一个 DispatcherTimer 实例。我们将Interval属性设置为 一秒,订阅 Tick 事件,然后启动计时器。在 Tick 事件中,我们只需更新标签以显示当前时间。

当然,DispatcherTimer 可以以更小或更大的间隔工作。例如,您可能只希望每 30 秒或 5 分钟发生一次 - 只需使用 TimeSpan.From* 方法,如 FromSeconds 或 FromMinutes,或创建一个完全符合您需求的新 TimeSpan 实例。

为了展示 DispatcherTimer 的功能,让我们尝试更频繁地更新……更频繁地更新!

using System;
using System.Windows;
using System.Windows.Threading;namespace WpfTutorialSamples.Misc
{public partial class DispatcherTimerSample : Window{public DispatcherTimerSample(){InitializeComponent();DispatcherTimer timer = new DispatcherTimer();timer.Interval = TimeSpan.FromMilliseconds(1);timer.Tick += timer_Tick;timer.Start();}void timer_Tick(object sender, EventArgs e){lblTime.Content = DateTime.Now.ToString("HH:mm:ss.fff");}}
}

如您所见,我们现在要求 DispatcherTimer 每毫秒触发一次!在 Tick 事件中,我们也使用自定义时间格式字符串来显示标签中的毫秒数。现在您有一些可以轻松用作秒表的东西 - 只需向窗口添加几个按钮,然后让它们调用 计时器上的Stop()Start()Restart()方法。

概括

在许多情况下,您需要在给定的时间间隔内在应用程序中发生某些事情,而使用 DispatcherTimer,这很容易实现。请注意,如果您在 Tick 事件中做了一些复杂的事情,它不应该运行得太频繁,就像在上一个示例中,计时器每毫秒滴答一次——这会给运行您的应用程序的计算机带来沉重的压力。

另请注意,DispatcherTimer 并非在所有情况下都 100% 精确。tick 操作放在 Dispatcher 队列中,因此如果计算机压力很大,您的操作可能会延迟。.NET 框架承诺 Tick 事件永远不会太早发生,但不能承诺它不会稍微延迟。但是,对于大多数用例, DispatcherTimer 已经足够精确了。

如果您需要您的计时器在队列中具有更高的优先级,您可以通过发送 DispatcherTimer 优先级上的值之一来设置 DispatcherPriority 。

推荐WPF MVVM框架开源控件库:Newbeecoder.UI

​编辑https://www.zhihu.com/video/1515266659548389376

Demo下载:

Newbeecoder.UI开源项目

http://www.yayakq.cn/news/507293/

相关文章:

  • 男男床做视频网站在线做网站手机验证收费吗
  • 企业网站建设招标学校网站建设需求分析调研表
  • 大连制作网站软件网站自动生成
  • 网站好坏怎么分析广东新闻发布会
  • 吉林省建设招标网站网站建设规划书样板
  • 网站建设哪家好公司深圳上市公司
  • 网站怎么上传ftpwordpress采集商品
  • 网站怎么做留言区特效网站大全
  • 网站制作书籍推荐中国住房和城乡建设网网站
  • 做网站 客户大概会有那些问题wordpress分类不显示图片
  • 深圳网站建设服务哪个便宜点恒网做的网站
  • 中国中国建设银行网站批量关键词排名查询工具
  • 做网站编写那些网站百度抓取率比较高
  • nodejs 网站开发工具网
  • 网站需要网监备案汕头网站建设网站
  • 东营市公司网站建设价格海南网站建设
  • 广州好的网站建设网站建设私人接单
  • 谁会制作网站车辆保险网站
  • 网站弄论坛形式怎么做小学校园门户网站建设
  • 福建省建设执业资格中心网站个人主页展示店铺
  • 网站建设 类型网站与域名的关系
  • 昆明seo网站移动版网站建设
  • 云一网站设计软件详细设计文档
  • 如何选择个人网站主题网站开发的prd 怎么写
  • 葫芦岛建设信息网站3d网页游戏开服表
  • 如何在vps上搭建网站如何通过外链提高网站权重
  • 微网站免费软件世界500强设计公司有哪些
  • 建网站非要做外链吗地方房地产网站seo实战案例分享
  • 做网站可以赚钱嘛电子商务网站建设题库
  • 南京网站建设有限公司做it行业招标网站有哪些