作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 Windows 服务,它每 n 秒扫描一次文件夹以查找更改。尝试启动时出现“服务未及时响应启动命令”。
我在 OnStart 中设置了一个循环,如下所示:
public void OnStart(string[] args)
{
while (!_shouldExit)
{
//Do Stuff
//Repeat
Thread.Sleep(_scanIntervalMillis);
}
}
这是导致错误的原因吗?我应该委托(delegate)这个方法吗?
最佳答案
OnStart 应该只开始 工作;它不负责这样做。这通常意味着产生一个新线程来完成实际工作。预计 OnStart 会立即完成。例如:
public void OnStart(string[] args) // should this be override?
{
var worker = new Thread(DoWork);
worker.Name = "MyWorker";
worker.IsBackground = false;
worker.Start();
}
void DoWork()
{
// do long-running stuff
}
关于c# - Windows 服务 : OnStart loop - do I need to delegate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649935/
我是一名优秀的程序员,十分优秀!