【发布时间】:2012-10-10 18:30:39
【问题描述】:
我知道这是一个已经提出的问题,但我找不到任何解决方案。这是我的服务。
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();
}
}
}
如您所见,我想每 5 秒将 currentTime 写入我的 Mylog.txt 文件,但即使 2 分钟也没有任何反应。如果我将 WriteTimeToFile() 函数放入 OnStart 方法中,它可以正常工作,但不能在计时器中。
任何帮助将不胜感激。
【问题讨论】:
-
通过附加来自 Visual Studio 的进程来调试您的服务。
标签: c# windows-services