我正在编写我的第一个Windows服务,并从它开始只是写入一个日志文件,这是完美的。我实际上需要服务来遍历json文件中的条目,我在其他地方使用过没有任何问题。所以我的服务启动一个计时器,每隔60秒发一次事件;
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 60000; // 60 seconds
timer.Elapsed += new System.Timers.ElapsedEventHandler(this.OnTimer);
timer.Start();
这非常完美,因此我的OnTimer事件就是这样;
public void OnTimer(object sender, System.Timers.ElapsedEventArgs args)
{
eventLog1.WriteEntry("Drive Space monitoring initiated", EventLogEntryType.Information, eventId++);
}
这样就可以完全按照我预期的每60秒将条目放入日志中。当我尝试向OnTimer事件添加循环时,我的问题出现了。为简单起见,这是我添加的内容;
int count = 4;
for(int x = 1; x <= count; x++)
{
string msg = "This is just a counter: " + x.ToString();
eventLog1.WriteEntry(msg, EventLogEntryType.Information, eventId++);
}
这绝对没有效果,当OnTimer事件触发时,我的日志文件中没有添加更多条目。
答案 0 :(得分:1)
使用System.Threading.Timer
代替System.Timers.Timer
。
System.Timers.Timer
在Windows服务中使用时会给出一些问题,它会吞下所有异常。