.net 4.5正确的Windows服务启动方法

本文关键字:Windows 服务 启动 方法 net | 更新日期: 2023-09-27 18:28:26

既然任务似乎是实现大多数多线程的公认方式,那么这现在是编写windows服务启动方法的"正确"方式吗?

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

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

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或其他)明确指出这是现在构建服务的正确方式。

.net 4.5正确的Windows服务启动方法

我在企业应用程序中使用过它,它工作起来没有问题:

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

我通过异步调用OnStart(string[]args){}

来运行此操作