WPF常見的兩種定時器

2021-09-25 11:04:58 字數 1586 閱讀 5525

先來說一下是哪兩種定時器

先說明一下wpf介面是沒有timer控制項的

第一種:dispatchertimer定時器,可以說是專門為wpf介面設計的定時器。因為這個定時器是和ui都在同一執行緒上的。

第二種:system.timers.timer定時器,這種定時器是和ui非同乙個執行緒。

使用方法

dispatchertimer定時器:

先新增命名空間的引用:

using system.windows.threading;
例項化dispatchertimer定時器:

dispatchertimer timer = new dispatchertimer()

;

在窗體的建構函式裡面設定定時器的一些引數

timer.interval = new timespan(0

,1,0

);//設定的間隔為一分鐘

timer.tick +

= timer_tick;

timer.isenabled = true;

在需要開始定時器的地方,開啟定時器

timer.

start()

;

system.timers.timer定時器

例項化system.timers.timer定時器

system.timers.timer timer = new system.timers.

timer()

;

在窗體的建構函式裡面設定定時器的一些引數

timer.interval =

60000

;//這裡設定的間隔時間為1分鐘

timer.elapsed +

= new system.timers.

elapsedeventhandler

(timer_elapsed)

;timer.autoreset = true;

//設定timer_elapsed是執行一次(false)還是一直執行(true)

timer.enabled = true;

在需要開始定時器的地方,開啟定時器

timer.

start()

;

but,以為到這裡system.timers.timer定時器就可以使用了嗎,那你也太小看它了。由於我們在ui層使用的定時器,但是這個定時器和ui不屬於同一執行緒,所以執行的時候就會報錯。

那麼解決方法有什麼呢:(只有思路,比較繁瑣,未實現)

將ui暫停一會會,先讓timer執行完。

兩種定時器的優缺點

dispatchertimer定時器

適合wpf的ui層

system.timers.timer定時器

和ui不屬於同一執行緒,存在資源占用情況,解決方法較繁瑣。

javaScript中兩種定時器

1.var num setinterval 方法名 毫秒值 每隔一定的毫秒值就執行函式 clearinterval num 什麼時候想停止,將setinterval 的返回值num傳給clearinterval num 即可 獲取驗證碼 執行結果是 2.var num settimeout 方法名 ...

JS中兩種定時器

settimeout 在指定的毫秒後呼叫函式或者計算表示式 傳入三個引數 code 必需 要呼叫的函式後要執行的js 串 millisec 必需 在執行 前需等待的毫秒數 lang 可選一般不寫,選擇指令碼語言型別 setinterval 按照指定週期來呼叫函式或者計算表示式。方法會不停地呼叫函式,...

Quartz和Timer兩種定時器

一 首先在spring中配置 二 要在web.xml監聽一下 com.operator.common.shutdownquartz 三 監聽類 每次重啟tomcat的時候關掉上次的定時任務 public class shutdownquartz implements servletcontextli...