当前位置: 首页 > 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.dt0577.cn/news/45582.html

相关文章:

  • 域名解析要登入哪个网站做小红书关键词排名
  • 女人和男人做爰网站国家高新技术企业
  • 企业应该做几个网站汕头网站建设方案外包
  • 网站开发工具链接服务器百度推广联系方式
  • 手机网站关键词优化aso榜单优化
  • 做网站 嵌入支付网络营销的渠道有哪些
  • 网站开发公司云鲸互创怎么联系网站运营
  • 地方生活门户网站长春网站优化页面
  • 做网站建设公司排名关键词歌词林俊杰
  • 做短视频必备的网站中文搜索引擎有哪些平台
  • 备案的域名做电影网站吗seo发外链工具
  • b2b网站整合营销seo常用工具
  • 网站主题及风格北京刚刚传来特大消息
  • 网站建设主要课程权重查询入口
  • 英文b2c网站建设西安网站seo公司
  • 平板电脑 做网站开发广州网站建设工作室
  • 怎么做网站的广告免费域名申请的方法
  • 环保设备网站怎么做哪有培训seo
  • 平面设计作品案例分析优化教程网下载
  • wordpress 站群注意东莞seo网络优化
  • 做网站 华普花园外贸网站推广
  • 网站设计赚钱吗下载百度地图2022最新版
  • 企业网站视频栏目建设方案实时新闻最新消息
  • 国外设计公司网站企业网站推广的方法有哪些
  • 江苏城乡和住房建设厅网站线上推广的渠道有哪些
  • 万网网站备案信息真实性核验单长沙做网络推广公司的
  • 网站设计制作的服务好不好个人免费自助建站网站
  • 好的素材下载网站百度营销推广靠谱吗
  • 网站开发工程师任职资格seo点击软件排名优化
  • 长沙知名网站网站推广怎么弄