cxiはタイマー機能を実現します。
シーン
低液位の早期警報弾戸をクリックして確定したら、5分後に監視を行うなどのタイマーを実現する必要があります。
実現の構想はTimerを使ってから、秒ごとに一つの方法を実行して、方法の中で秒数を1つ減らすことを行って、カウントダウンが終わったら、対応する操作を実行します。
実現する
でもTimerは三つあります
1.System.Windows.Formsに定義されています。
2.System.Threading.Timer類に定義する
3.System.Timers.Timer類に定義する
最初に使ったのはSystem.Windows.Formsです。
System.Windows.Forms.TimerはWinFormに適用されています。Windowsメッセージ機構を通じて実現されています。VBまたはDelphiのTimerコントロールに似ています。内部でAPIを使用しています。 SetTimerが実現した。その主な欠点はタイミングが正確ではなく、メッセージサイクルが必要です。 アプリは使えません。
コードの使用例:
新しいタイマーオブジェクト
System.Timers.Timerに変更しました。
タイマーオブジェクトを新規作成して実行する間隔を1秒に設定します。
起動タイマー
低液位の早期警報弾戸をクリックして確定したら、5分後に監視を行うなどのタイマーを実現する必要があります。
実現の構想はTimerを使ってから、秒ごとに一つの方法を実行して、方法の中で秒数を1つ減らすことを行って、カウントダウンが終わったら、対応する操作を実行します。
実現する
でもTimerは三つあります
1.System.Windows.Formsに定義されています。
2.System.Threading.Timer類に定義する
3.System.Timers.Timer類に定義する
最初に使ったのはSystem.Windows.Formsです。
System.Windows.Forms.TimerはWinFormに適用されています。Windowsメッセージ機構を通じて実現されています。VBまたはDelphiのTimerコントロールに似ています。内部でAPIを使用しています。 SetTimerが実現した。その主な欠点はタイミングが正確ではなく、メッセージサイクルが必要です。 アプリは使えません。
コードの使用例:
新しいタイマーオブジェクト
System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();
実行する間隔時間をミリ秒単位で設定します。
_timer.Interval = 1000;
間隔時間内に行う方法を設定します。
_timer.Tick +=_timer_Tick;
private void _timer_Tick(object sender, EventArgs e)
{
//
}
起動タイマー
_timer.Start();
タイマーを停止
_timer.Stop();
しかし、このタイマーは実行されていないことが分かりました。毎秒一回実行する方法は実行されません。もともとはコンソールプログラムでは使えませんでした。System.Timers.Timerに変更しました。
タイマーオブジェクトを新規作成して実行する間隔を1秒に設定します。
System.Timers.Timer _timerWaterTank = new System.Timers.Timer(1000);// Timer , 1000 ;
タイマーの実行イベントを設定します。
_timerWaterTank.Elapsed += new System.Timers.ElapsedEventHandler(_timerWaterTank_Tick);// ;
設定は一回実行しますか?それともずっと実行しますか?
_timerWaterTank.AutoReset = true;// (false) (true);
具体的に実行するイベント方法
private void _timerWaterTank_Tick(object sender, EventArgs e)
{
System.Timers.Timer timer = sender as System.Timers.Timer;
//
this.LowLevelSecondsWaterTank--;
if (this.LowLevelSecondsWaterTank <= 0)
{
//
Global.PublicVar.Instance.IsGoOnMonitorWaterPool = true;
timer.Enabled = false;
this.LowLevelSecondsWaterTank = Global.LOW_LEVEL_MONITOR_SECONDS;
}
}
このようにタイマーに一秒に一回の方法を実行させて、この方法で秒数を1つ減らして、秒数から0までの間に具体的な業務を実行します。起動タイマー
timer.Enabled = true;
タイマーを停止
timer.Enabled = false;
以上はcxi実現タイマー機能の詳細です。cxiタイマーに関する資料は他の関連記事に注目してください。