我問這個問題,因爲我想用一個定時器不是最好的解決方案(週期性比較當前的時間,我需要運行任務的時間)
爲什麼?爲什麼不計時最好的解決方案? IMO定時器是最好的解決方案。但不是你實施的方式。嘗試以下操作。
private System.Threading.Timer timer;
private void SetUpTimer(TimeSpan alertTime)
{
DateTime current = DateTime.Now;
TimeSpan timeToGo = alertTime - current.TimeOfDay;
if (timeToGo < TimeSpan.Zero)
{
return;//time already passed
}
this.timer = new System.Threading.Timer(x =>
{
this.ShowMessageToUser();
}, null, timeToGo, Timeout.InfiniteTimeSpan);
}
private void ShowMessageToUser()
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(this.ShowMessageToUser));
}
else
{
MessageBox.Show("Your message");
}
}
使用方法如下
SetUpTimer(new TimeSpan(17, 45, 00));
你應該提供你試圖解決這個問題的代碼示例。 – BartoszKP
5:45 PM設置一個'Timer' –
您誤解了'Timer'類,重新查看文檔可能是個好主意。 – flindeberg