protected static void SetOndDayTimer()
{
DateTime startTime = new DateTime(
DateTime.Now.Year,
DateTime.Now.Month,
DateTime.Now.Day,
23, 58, 0);
if (startTime < DateTime.Now)
startTime = startTime.AddDays(1.0);
TimeSpan delayTime = (startTime - DateTime.Now);
TimeSpan intervalTime = new TimeSpan(1, 0, 0, 0);
TimerCallback timerDelegate = new TimerCallback(OnOndDayTimer);
oneDayTimer = new System.Threading.Timer(timerDelegate, null, delayTime, intervalTime);
}
SetOndDayTimer();
注意:我在使用System.Threading.Timer时发现这个会有误差累计,目前还没有发现比较好的解决办法。