方法の発生アラートは、クライアントまで、フルのC#?
質問
たいのですがイベントを生成します特定の時間がかかる?例えば、言いたい発生アラート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) の警戒態勢にあるからです。入手できるかもしれませんが、求書の小さなプログラムに集まる情報からの主なアプリケーションデータファイル等
カップルの主な利点をこのアプローチ:
- いく任意のコードの特徴です。ご使用のものに内蔵されます。この例はWindows、その他のOsは同じ特徴です。ますますの発展が期待出来るでお客様の開発援およびご自身のコードです。
- メインを持っていない運行のための課題。
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を
所属していません StackOverflow