質問

たいのですがイベントを生成します特定の時間がかかる?例えば、言いたい発生アラート8:00AMるお知らせいその8:00AMまたはイベント通知しまったのは現在の時間を指定。

役に立ちましたか?

解決

System.Threading.Timer クラスます:

var dt = ... // next 8:00 AM from now
var timer = new Timer(callback, null, dt - DateTime.Now, TimeSpan.FromHours(24));

callbackデリゲートは、次の時間は、それがその後の午前8時と24時間ごとだと呼ばれます。

これはSO次回8:00発生を計算する方法をの質問はを参照してください。

他のヒント

これは私がそれを実装する方法ですDTBの答えにエラボます。

  private void Form1_Load(object sender, EventArgs e)
    {
        System.Threading.TimerCallback callback = new TimerCallback(ProcessTimerEvent);

        //first occurrence at
        var dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 10, 0, 0);

        if (DateTime.Now < dt)
        {
            var timer = new System.Threading.Timer(callback, null, 
                                               //other occurrences every 24 hours
                            dt - DateTime.Now, TimeSpan.FromHours(24));
        }

    }

    private void ProcessTimerEvent(object obj)
    {
        MessageBox.Show("Hi Its Time");
    }

のアラートを生成するプログラム?もう一つのアプローチは、使用 予定のタスク(Windows) の警戒態勢にあるからです。入手できるかもしれませんが、求書の小さなプログラムに集まる情報からの主なアプリケーションデータファイル等

カップルの主な利点をこのアプローチ:

  1. いく任意のコードの特徴です。ご使用のものに内蔵されます。この例はWindows、その他のOsは同じ特徴です。ますますの発展が期待出来るでお客様の開発援およびご自身のコードです。
  2. メインを持っていない運行のための課題。
private void Run_Timer()
    {
        DateTime tday = new DateTime();
        tday = DateTime.Today;
        TimeSpan Start_Time = new TimeSpan(8,15,0);
        DateTime Starter = tday + Start_Time;
        Start_Time = new TimeSpan(20, 15, 0);
        DateTime Ender = tday + Start_Time;
        for (int i = 0; i <= 23; i++)
        {
            Start_Time = new TimeSpan(i, 15, 0);
            tday += Start_Time;
            if (((tday - DateTime.Now).TotalMilliseconds > 0) && (tday >= Starter) && (tday <= Ender))
            {
                Time_To_Look = tday;
                timer1.Interval = Convert.ToInt32((tday - DateTime.Now).TotalMilliseconds);
                timer1.Start();
                MessageBox.Show(Time_To_Look.ToString());
                break;
            }
        }
    }

私たちは、特定の時間に実行するように回実行されているタイマーを取得するため、この機能を使用するか、またはそれを変更することができます:Dを

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top