我知道這是一個已經問過的問題,但我找不到任何解決方案。這是我的服務。爲什麼計時器不能在windows服務中工作?
class Program : ServiceBase
{
private Timer _timer;
public Program()
{
ServiceName = "PrintTime";
}
static void Main(string[] args)
{
Run(new Program());
}
protected override void OnStart(string[] args)
{
base.OnStart(args);
_timer = new Timer(5000);
_timer.Elapsed += _timer_Elapsed;
_timer.Start();
}
void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
WriteTimeToFile();
}
protected override void OnStop()
{
_timer.Stop();
}
private void WriteTimeToFile()
{
using (FileStream fs = new FileStream(@"d:\mylog.txt", FileMode.Append, FileAccess.ReadWrite))
{
StreamWriter streamWriter = new StreamWriter(fs);
streamWriter.Write(DateTime.Now.ToShortTimeString());
streamWriter.Close();
fs.Close();
}
}
}
正如你可以看到我想寫currentTime
到我Mylog.txt
文件每5秒,但即使在2分鐘後沒有任何反應。如果我將WriteTimeToFile()
函數放入OnStart
方法中,它可以正常工作,但不能在定時器中使用。
任何幫助將不勝感激。
通過附加Visual Studio的過程來調試您的服務。 – Adil