タイマークラス:タイマーを設定して、ユーザー指定の関数を定期的に実行します。
タイマーが開始すると、システムは自動的に新しいスレッドを作成して、ユーザーが指定した機能を実行します。
Timer timer = new Timer(timerDelegate、s、1000、1000);
//最初のパラメーター:実行するメソッドを示すTimerCallbackデリゲートを指定します;
// 2番目のパラメーター:含むメソッド使用される情報のオブジェクト、またはnull参照;
// 3番目のパラメーター:遅延時間-時間の開始から現在の時間までの時間(ミリ秒単位)。 "0"と指定すると、タイマーがすぐに開始されます;
// 4番目パラメータ:タイマーの時間間隔-タイミングの開始後、非常に長い期間ごとに、TimerCallbackで表されるメソッドがミリ秒単位で1回呼び出されます。定期的な終了を無効にするには、Timeout.Infiniteを指定します。
Timer.Change()メソッド:タイマー設定を変更します。(これはパラメーター型オーバーロードのメソッドです)
使用例: timer.Change(1000,2000);
Timerクラスのプログラム例(出典:MSDN):
using
System;
using System.Threading;
namespace ThreadExample
{
class TimerExampleState
{
public int counter = 0 ; public Timer tmr; } class App { public static void Main() { TimerExampleState s = new TimerExampleState(); // プロキシオブジェクトTimerCallbackを作成しますエージェントは、 TimerCallback と呼ばれますtimerDelegate = new TimerCallback(CheckStatus); //
1秒のインターバルタイマ作成 タイマタイマ = 新しい新しい タイマー(timerDelegate、S、1000年、 1000 ); s.tmr = タイマーを; // 終了するタイマーオブジェクトの停止および待機のメインスレッドしばらく(s.tmr != ヌル) Thread.Sleep(0 ); Console.WriteLine(" Timer example done。" ); Console.ReadLine(); } // 以下は定期的に呼び出されるメソッドですstatic void CheckStatus(Object state) { TimerExampleState s =
(TimerExampleState)state;
s.counter ++ ;
Console.WriteLine( " {0}ステータスの確認{1}。 " 、DateTime.Now.TimeOfDay、s.counter);
もし (s.counter == 5 ) { // 使用変更方法改变了时间间隔 (s.tmr).Change(10000 、2000 )。 Console.WriteLine(" changed " ); } if (s.counter == 10 ) { Console.WriteLine("
タイマーの 破棄 " );
s.tmr.Dispose();
s.tmr = null ; } } } }
using System.Threading;
namespace ThreadExample
{
class TimerExampleState
{
public int counter = 0 ; public Timer tmr; } class App { public static void Main() { TimerExampleState s = new TimerExampleState(); // プロキシオブジェクトTimerCallbackを作成しますエージェントは、 TimerCallback と呼ばれますtimerDelegate = new TimerCallback(CheckStatus); //
1秒のインターバルタイマ作成 タイマタイマ = 新しい新しい タイマー(timerDelegate、S、1000年、 1000 ); s.tmr = タイマーを; // 終了するタイマーオブジェクトの停止および待機のメインスレッドしばらく(s.tmr != ヌル) Thread.Sleep(0 ); Console.WriteLine(" Timer example done。" ); Console.ReadLine(); } // 以下は定期的に呼び出されるメソッドですstatic void CheckStatus(Object state) { TimerExampleState s =
(TimerExampleState)state;
s.counter ++ ;
Console.WriteLine( " {0}ステータスの確認{1}。 " 、DateTime.Now.TimeOfDay、s.counter);
もし (s.counter == 5 ) { // 使用変更方法改变了时间间隔 (s.tmr).Change(10000 、2000 )。 Console.WriteLine(" changed " ); } if (s.counter == 10 ) { Console.WriteLine("
タイマーの 破棄 " );
s.tmr.Dispose();
s.tmr = null ; } } } }
プログラムは最初にタイマーを作成し、1秒間作成された後、1秒ごとにCheckStatus()メソッドを呼び出します。5回呼び出されると、CheckStatus()メソッドで時間間隔が2秒に変更され、指定されます10秒後にもう一度開始します。カウントが10回に達すると、Timer.Dispose()メソッドが呼び出されてタイマーオブジェクトが削除されるため、メインスレッドがループからジャンプしてプログラムを終了します。
著者:XuGangスクリーン名:スチールスチール |
出典:http : //xugang.cnblogs.com |
免責事項:この記事の著作権は作者とブログパークに属します!再印刷するときは、この段落のステートメントを保持する必要があり、元のテキストリンクは記事ページの明確な位置に配置する必要があります。 |