Personnaly,我建議System.Threading.Timer在同一個服務。
事情是這樣的:
using System;
using System.Threading;
public class Foo
{
private Timer _timer;
private readonly static TimeSpan TIME_OF_DAY = new TimeSpan(9, 30, 0);
public void Main()
{
var now = DateTime.Now;
var nextDt = now.Date.AddDays(1).Add(TIME_OF_DAY);
_timer = new Timer(TimerCallback, null, (int)nextDt.Subtract(now).TotalMilliseconds, Timeout.Infinite);
}
public void TimerCallback(object state)
{
try
{
// Reminder
}
finally
{
try
{
var now = DateTime.Now;
var nextDt = now.Date.AddDays(1).Add(TIME_OF_DAY);
_timer.Change((int)nextDt.Subtract(now).TotalMilliseconds, Timeout.Infinite);
}
catch (ObjectDisposedException) { }
}
}
}
所以,你會寫第二程序VS使用定時器或類似的解決方案? –
當然,爲什麼不呢?似乎更簡單的是,讓服務不斷檢查是否是9:30,然後執行一些特殊的代碼。你甚至在你的問題中說過,使用計時器並不是一個「不完美的想法」。 –