gpt4 book ai didi

c# - 第一个 Windows 服务 - 计时器似乎不计时

转载 作者:行者123 更新时间:2023-11-30 13:18:18 27 4
gpt4 key购买 nike

我编写了我的第一个 Windows 服务。

  1. 创建 WS 项目
  2. 重命名服务
  3. 将计时器拖到中间
  4. 启用它,勾选到1s
  5. 不存在时在 tick 中创建一个 logfie
  6. 安装服务
  7. 运行服务

什么都没发生...

我尝试附加到该服务,它已正确加载,但其中有一个断点,它永远不会命中。

有什么想法吗?


代码计时器:

private void timMain_Tick(object sender, EventArgs e)
{
if (!File.Exists("C:/test.txt"))
File.Create("C:/test.txt");
}

代码初始化:

private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timMain = new System.Windows.Forms.Timer(this.components);
//
// timMain
//
this.timMain.Enabled = true;
this.timMain.Interval = 1000;
this.timMain.Tick += new System.EventHandler(this.timMain_Tick);
//
// AuctionService
//
this.CanShutdown = true;
this.ServiceName = "AuctionService";

}

一句话:File.Create只是为了测试定时器是否计时。因此我有点缺乏创造力 =)

最佳答案

即使您正确地初始化了定时器,它也没有做任何事情,因为您没有在 UI 中使用它。 MSDN docs声明它必须与 UI 消息泵一起使用,而服务没有。

我建议您使用 System.Threading.Timer相反,因为它不需要 UI,更适合在服务中使用:

Timer t = new Timer(t_Tick, null, 0, 1000);

请注意,此计时器的滴答事件处理程序仅将对象作为参数。

关于c# - 第一个 Windows 服务 - 计时器似乎不计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1805159/

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