Timer和DispatcherTimer简单使用

1. 设定计时器相关属性,使用委托方法处理事件触发

DispatcherTimer dispatcherTimer= new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, _heartBeat.Period);
dispatcherTimer.Start();

2.一种比较安全的使用方法

private Timer aTimer = null;
private delegate void TimerDispatcherDelegate();
public MainWindow() {
InitializeComponent();
aTimer = new Timer(1000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 1000;
aTimer.Enabled = true;
}
private void OnTimedEvent(object sender, EventArgs e) {
this.Dispatcher.Invoke(DispatcherPriority.Normal, new TimerDispatcherDelegate(updateUI));
}

private void updateUI() {
timeLabel.Content = DateTime.Now.ToUniversalTime();
}
}

时间: 2024-10-07 23:51:51

Timer和DispatcherTimer简单使用的相关文章

实例对比WPF中的Timer和DispatcherTimer

本文使用Timer和DispatcherTimer制作电子时钟,通过实例对比来了解两者的本质区别. 下面是实例最终的运行画面.其中时钟1使用Timer实现,时钟2使用DispatcherTimer实现. 下面给出完整的实例代码(省略画面代码). using System; using System.Windows; namespace DispatcherTimereExp { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary&g

C#中的Timer和DispatcherTimer使用实例

Timer组件是基于服务器的计时器,通过设置时间间隔Interval,周期性的触发Elapsed事件. 用法如下: 代码如下: class Program { static System.Timers.Timer Timer1 = new System.Timers.Timer(); static void Main() { Timer1.Interval = 1000; Timer1.Elapsed += new ElapsedEventHandler(PeriodicTaskHandler)

WPF中Timer与DispatcherTimer类的区别

利用一个计时器Timer类,实时更新界面上的控件内容,但是一直遇到抛出异常:System.InvalidOperationException {"调用线程无法访问此对象,因为另一个线程拥有该对象."} . 测试代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Contr

ASP.NET AJAX入门系列(10):Timer控件简单使用

本文主要通过一个简单示例,让Web页面在一定的时间间隔内局部刷新,来学习一下ASP.NET AJAX中的服务端Timer控件的简单使用. 主要内容 Timer控件的简单使用 1.添加新页面并切换到设计视图. 2.如果页面没有包含ScriptManager控件,在工具箱的AJAX Extensions标签下双击ScriptManager控件添加到页面中. 3.单击ScriptManager控件并双击UpdatePanel控件添加到页面中. 4.在UpdatePanel控件内单击并双击Timer控件

java Timer和TimerTask(简单的使用)

Timer 是一个定时工具 TimerTask 是一个实现了Runnable接口抽象类,代表可以被Timer执行的任务 (1)Timer.schedule(TimerTask task,Date time)安排在制定的时间执行指定的任务. (2)Timer.schedule(TimerTask task,Date firstTime ,long period)安排指定的任务在指定的时间开始进行重复的固定延迟执行. (3)Timer.schedule(TimerTask task,long del

.NET中的Timer类型用法详解(转)

在.NET FrameWork中有多个Timer,那么怎么根据实际情况进行选择确实是一个问题. 总体而言,计时器共有以下四种: 多线程计时器: 1 System.Threading.Timer2 System.Timers.Timer 特殊环境的单线程计时器: 1 System.Windows.Forms.Timer(使用环境:Windows Forms Timer)2 System.Windows.Threading.DispatcherTimer( 使用环境:WPF timer); 单线程计

在Silverlight中的DispatcherTimer的Tick中使用基于事件的异步请求

需求:在silverlight用户界面上使用计时器定时刷新数据. 在 Silverlight 中的 DispatcherTimer 的 Tick 事件 中使用异步请求数据时,会出现多次请求的问题,以下是ViewModel的代码,看样子没什么问题: using System; using System.Net; using System.Threading; using System.Windows; using System.Windows.Controls; using System.Wind

Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)

在Java中,实现定时任务有多种方式.本文介绍4种.Timer和TimerTask.Spring.QuartZ.Linux Cron. 以上4种实现定时任务的方式.Timer是最简单的.不须要不论什么框架,只JDK就能够.缺点是不过个时间间隔的定时器,调度简单.Spring和QuartZ都支持cron,功能都非常强大,Spring的长处是略微简单一点,QuartZ的长处是没有Spring也可使用:Linux Cron是个操作系统级别的定时任务.适用于全部操作系统支持的语言,缺点是精度只能到达分钟

SSH系列:(28)JDK Timer和Quartz

常见的任务调度有Jdk 的Timer 以及 spring中quartz任务调度框架等. 1.JDK Timer 如果是执行简单的有一定执行周期的,那么使用jdk自带的timer是最简单的. 具体步骤: ①.编写一个简单类继承 TimerTask,在这个新编写的类中重写父类中run方法,在run中执行要执行的操作: ②.编写一个简单类,在类中写一个方法,方法体中使用timer调用在①中创建的类并设置好timer执行周期. MyTask.java package com.rk.test; impor