C# でタイマーをリセット
![C# でタイマーをリセット](/img/Csharp/feature-image---reset-timer-in-csharp.webp)
この記事では、C# プログラミング言語を使用したタイマーのリセットについて説明します。
C#
の System.Timer
クラス
C# のこの System.Timer
クラスは、一定の時間が経過したときにコードのブロックを実行するメカニズムを提供し、このコードは複数回実行される場合があります。
C#
でタイマーをリセットするには、Timer.AutoReset
を使用する
タイマーの間隔が終了すると、AutoReset
によりタイマーがリセットされ、0
からカウントを再開できます。enabled プロパティが true
に設定されている場合はカウントダウンが開始されますが、これが false
に設定されている場合は、Start()
メソッドを呼び出してタイマーを再起動する必要があります。
プログラムのタイマー機能が完了したら、プログラムを終了し、そのリソースを他のコンテキストで使用できるようにする必要があります。言い換えると、Timer.AutoReset
は、タイマーが Elapsed
イベントを 1 回だけ false
発生させるか、数回 true
発生させるかを示すブール値の読み取りまたは書き込みを行います。
AutoReset
イベントの構文は次のとおりです。
public bool AutoReset { get; set; }
この種のイベントはさまざまな用途に使用できますが、接続の状態を判別するための Web アプリケーションでの使用に特に適しています。ビデオゲーム中に使用するためのストップウォッチは、さらに別の潜在的な用途です。
次の例は、2 秒
が経過したときにトリガーされる Elapsed イベントを使用してタイマー
を作成する方法を示しています。次に、関連するイベントハンドラーの出力として、コンソールに私の名前は DelftStack
と表示されます。
-
まず、次のライブラリをインポートする必要があります。
using System; using System.Timers;
-
Shanitimer
クラス内でタイマー変数(t
と呼びます)を宣言すると、すべてのメソッドで使用できるようになります。private static System.Timers.Timer t;
-
組み込みのクラスに従ってタイマーを設定します。
AutoReset
タイマーは、間隔が経過するとリセットされ、新しいカウントを開始します。これがfalse
に設定されている場合は、タイマーをリセットする必要があります。2000
は、状況に応じて変更される可能性のある時間間隔です。ミリ秒
で、Interval
パラメータを設定してから必要なコードを実行するまでの待機時間を指定できます。
t.AutoReset = true; t.Enabled = true; t.Interval = 2000; t.Elapsed += ontime;
Elapsed
属性は、時間の後に実行される関数を指定します。C# でのイベントハンドラーの定義は、私が行ったように、+=
を使用してより迅速に実行でき、イベントハンドラーをサブスクライブするようにタイマーに指示します。
-
コンソールにいくつかのアラートメッセージも表示しました。
Console.WriteLine(" Waiting for Command "); Console.WriteLine(" Click on Enter Button to Exit Console "); Console.ReadLine();
-
Stop()
関数を使用してタイマーを停止します。Dispose()
関数は、タイマーの実行が終了した後に消費したリソースを解放するために使用する必要があります。t.Stop(); t.Dispose();
-
ontime()
メソッドには、Object
およびSystem.Timers.ElapsedEventArgs
引数が必要です。private static void ontime(Object source, System.Timers.ElapsedEventArgs s) { Console.WriteLine(" My name is DelftStack "); }
完全なソースコード:
using System;
using System.Timers;
class Shanitimer {
private static System.Timers.Timer t;
static void Main() {
t = new System.Timers.Timer();
t.AutoReset = true;
t.Enabled = true;
t.Elapsed += ontime;
t.Interval = 2000;
Console.WriteLine(" Waiting for Command ");
Console.WriteLine(" Click on Enter Button to Exit Console ");
Console.ReadLine();
t.Stop();
t.Dispose();
}
private static void ontime(Object source, System.Timers.ElapsedEventArgs s) {
Console.WriteLine(" My name is DelftStack ");
}
}
出力:
Waiting for Command
Click on Enter Button to Exit Console
My name is DelftStack
My name is DelftStack
//After this line, I pressed enter
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn