创建
首先你要确保你已经安装了.NET Core 3.0或以上版本。
- 使用命令行创建: dotnet new worker
- 使用Visual Studio创建
中文版:
英文版:
创建的新项目包含两个文件。其中 Program.cs 文件是应用的启动程序。另外一个文件是 Worker.cs 文件,你可以在这个文件编写你的业务代码。
这看起来应该是相当的容易,但是为这个程序添加额外的并行后台服务,你还需要添加一个类,并让它继承 BackgroundService 类:
public class MyNewBackgroundWorker : BackgroundService { protected override Task ExecuteAsync(CancellationToken stoppingToken) { //Do something. } }
然后在 Program.cs 中,我们要做的只是把当前的Worker注册到服务集合(Service Collection)中即可。
.ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); services.AddHostedService<MyNewBackgroundWorker>(); });
实际上作为“后台服务”任务的运行程序, AddHostedService 方法已经在框架中存在了很长时间了。在之前我们已经完成的一篇关于ASP.NET Core托管服务的文章, 但是在当时场景中,我们托管是是整个应用,而非一个在你应用程序幕后运行的东西。
优化系统的 Worker.cs ,代码执行顺序是冲上往下依次执行的(程序开始-停止)