gpt4 book ai didi

c# - 为什么计时器在 Windows 服务中不起作用?

转载 作者:太空狗 更新时间:2023-10-29 23:09:09 24 4
gpt4 key购买 nike

我知道这是一个已经提出的问题,但我找不到任何解决方案。这是我的服务。

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 方法中,它工作正常,但不是在计时器中。

如有任何帮助,我们将不胜感激。

最佳答案

定时器的命名空间是什么?它需要是 System.Timers.TimerSystem.Threading.Timer

参见此处:Best Timer for using in a Windows service

关于c# - 为什么计时器在 Windows 服务中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12986163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com