我在Windows服务中遇到一个奇怪的问题。是我的第一个Windows服务,所以为了开始学习我决定创建一个服务,每10秒写一个.txt文件的时间。 我添加计时器,但看起来计时器永远不会启动。 你能帮我理解我哪里错了吗? 在这里我的代码:
namespace testtimer
{
public partial class TestTimer : ServiceBase
{
public TestTimer()
{
InitializeComponent();
timer.Interval = 10000;
timer.Enabled = true;
}
protected override void OnStart(string[] args)
{
timer.Start();
}
protected override void OnStop()
{
}
private void timer_Tick(object sender, EventArgs e)
{
string date = System.DateTime.Now.ToString();
StreamWriter wr = new StreamWriter(@"C:\Users\xxx\Desktop\Test\testtimer.txt", true);
wr.WriteLine("\n" + "The Time is:" + "\t" + date);
wr.Close();
}
}
}
我哪里错了?
非常感谢你的帮助:)
答案 0 :(得分:1)
猜猜你正在使用Windows.Forms
计时器(组件一,你拖到你的设计界面上)......这需要一个"窗口"和"消息循环"为了能够处理/接收实际的计时器刻度事件。
当您使用NT服务时......您没有窗口......您只需要一些具有SCM调用入口点的代码(服务控制经理)。
您需要使用使用线程的其他类型的计时器,并将回调函数。