.net 4.5更正Windows服务启动方法

时间:2014-10-30 18:43:04

标签: c# .net windows service

现在,Tasks似乎是实现大多数多线程的可接受方式,现在这是"正确" 编写Windows服务启动方法的方法吗?

start方法将很快完成,但我是对Task的新手,并希望确保这是实现服务工作的正确方法。

我已对它进行了测试,似乎有效,但我想知道这种方法是否有副作用。

protected override void OnStart(string[] args)
{
    Task.Run(() => MyServiceThingsToDo());
}

private void MyServiceThingsToDo()
{
    // all the stuff I want to do like read from database, send alerts
    // even start other tasks
}

我已经查看了常规来源,无法找到任何明确说明这是正确现在构建服务的方式的来源(MSDN或其他方式)。

1 个答案:

答案 0 :(得分:1)

我在企业应用程序中使用了它,它没有问题:

_messageQueueWatcher = new Task(_engineService.StartMessageQueueWatcher, _cancelTokenSource.Token, TaskCreationOptions.LongRunning);
_messageQueueWatcher.Start();

我是从OnStart(string [] args){}

的异步调用中运行的