使用 console.readline()

Use of console.readline()

现在我有一个 C# 应用程序,它 运行 有一个计时器,它是 24/7 的,它会在 30 秒内完成并做任何事情。

我想将此应用程序设为 windows 服务,设为后台 运行。但是服务立即崩溃..

我的代码:

public static System.Timers.Timer _timer = new System.Timers.Timer();

static void Main(string[] args)
{
      _timer.Interval = 30000;
      _timer.Elapsed += timerCallback;
      _timer.AutoReset = true;
      _timer.Start();
}
public static void timerCallback(Object sender, System.Timers.ElapsedEventArgs e)
{
      // Do anything..
}

错误:

Windows could not start the Application service on Local Computer.

Error 1053: The service did not respond to the start or control request in a timely fashion

在 windows 事件查看器中出现此消息:

A timeout was reached (30000 milliseconds) while waiting for the Application service to connect.

但错误出现的速度超过 30 秒?!

运行 服务有什么解决方案吗?? 谢谢

迈克尔

您可以使用 Timer 在 windows 服务中定期执行逻辑,

protected override void OnStart(string[] args)
{
  base.OnStart(args);

  Timer timer = new Timer();
  timer.Interval = 30*1000;
  timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
  timer.Enabled = true;
  timer.Start();
}

private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
  //put logic here that needs to be executed for every 30sec
}