Nic*_*yer 5 .net c# windows-services startup
在不阻止服务控制管理器的情况下启动Windows服务(或暂停恢复)时进行冗长初始化的最佳方法是什么?
您可以使用a BackgroundWorker来执行冗长的操作以响应Service.Start事件.
在OnStart()你的ServiceBase派生类的方法中这样做很容易.在MSDN上也有一个合理的好例子.
protected override void OnStart(string[] args)
{
var worker = new BackgroundWorker();
worker.DoWork += DoSomeLongOperation;
worker.RunWorkerAsync();
}
private void DoSomeLongOperation(object sender, DoWorkEventArgs e)
{
// do your long operation...
}
Run Code Online (Sandbox Code Playgroud)
请注意,您还可以订阅ProgressChanged和RunWorkerCompleted事件,以便您可以通知服务控制管理器您的进度和启动成功(或失败).
| 归档时间: |
|
| 查看次数: |
1490 次 |
| 最近记录: |