在C#Windows服务中,我将如何在没有计时器/线程的情况下实现无尽的循环


protected override void OnStart(string[] args)
{
 while (true)
 {
 // do some work
  // idle
  Thread.Sleep(0, interval, 0)
 }
}

我无法将计时器/线程用于我的服务,因为我的第三方DLL不起作用,因此我尝试了on onStart中的while条件会引发错误。我将如何在没有计时器/线程的情况下实现无尽的循环。

您必须在另一个线程上进行工作,否则Windows Service Manager将假设您的服务尚未启动,因为OnStart()永远不会返回。

您的第三方库应该没有任何不同的工作方式,但是该线程可能需要不同的公寓模型。尝试创建一个sta线程(请参阅在C#中启动stathread)并查看是否有效,否则请与库的创建者进行交谈。

最新更新