首页 > 编程语言 >【.NET Core】创建一个在后台运行的控制台程序(ConsoleApp)

【.NET Core】创建一个在后台运行的控制台程序(ConsoleApp)

时间:2023-10-28 10:04:23浏览次数:41  
标签:Core ConsoleApp Task cancellationToken Nuget Program services NET 添加



文章目录

  • 1. 添加Nuget包
  • 2. 修改Program.cs
  • 3. 添加TestService


借助.NET的通用主机(IHostBuilder)可以轻易创建一个可以执行后台任务的程序

1. 添加Nuget包

  • Microsoft.Extensions.Hosting

2. 修改Program.cs

通过Host获取IHostService,然后添加一个名为TestSerivce的后台服务。

internal class Program
    {
        static void Main(string[] args)
        {
            Host.CreateDefaultBuilder().ConfigureServices((context,services) => {
                services.AddHostedService<TestService>();
            })
            .Build().Run();
        }
    }

3. 添加TestService

internal class TestService : IHostedService
    {
        public Task StartAsync(CancellationToken cancellationToken)
        {
        	//在这里执行你的工作,比如监听socket、消息服务等
            Console.WriteLine("do your work");
            return Task.CompletedTask;
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            return Task.CompletedTask;
        }
    }


标签:Core,ConsoleApp,Task,cancellationToken,Nuget,Program,services,NET,添加
From: https://blog.51cto.com/u_3826415/8065035

相关文章

  • .net5 websocket 客户端
    stringurl="http://127.0.0.1:2141";HubConnection_conn=newHubConnection(url,true);IHubProxy_proxy=_conn.CreateHubProxy($"/MyHub");_conn.Start();//定义客户端的方法sendMessage()(有两个string类型的参数,当服务端调用sendMessage,需要传入2个string类型参......
  • Netfilter日志记录
    iptables-traw-IPREROUTING-ptcp--dport80-jLOG#iptables-traw-IPREROUTING-ptcp--dport80-jLOG--log-level3--log-prefix"ipt-err:" 可以指定log级别日志级别可通过syslog定义进行查看。另外LOG目标还可指定参数:–log-tcp-sequence,–log-tcp-options,–......
  • Kubernetes 中使用consul-template渲染配置
    Kubernetes中使用consul-template渲染配置当前公司使用consul来实现服务发现,如Prometheue配置中的target和alertmanager注册都采用了consul服务发现的方式,以此来灵活应对服务的变更。但对于其他服务,是否也有一个通用的方式来使用consul管理配置文件?本文中描述如何使用consul-tem......
  • 用springBoot、netty写TCP客户端/服务端,并用TCP工具测试
    1.启动客户端和连接服务端packagecom.pkx.cloud.test.netty;importio.netty.bootstrap.Bootstrap;importio.netty.channel.*;importio.netty.channel.nio.NioEventLoopGroup;importio.netty.channel.socket.SocketChannel;importio.netty.channel.socket.nio.NioSock......
  • Azure DevOps 发布.Net项目到Windows IIS站点之pubxml
    通过VS中我们配置的pubxml进行发布trigger:-masterpool:vmImage:'windows-2022'variables:-group:GeexPublish-name:my-user-variablevalue:$[variables.UserName]#usesruntimeexpression-name:my-passed-variablevalue:$[variables.PassWord]......
  • .net 上传附件错误
     错误net::ERR_CONNECTION_ABORTED 导致这种错误的主要原因是上传的文件太大,服务器不能继续读取请求而过早中断链接Failedtoloadresource:theserverrespondedwithastatusof413()开发环境(IISExpress)1073741824=1GB根目录下创建 web.config 文件,内容如下<......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等。当然还有切换共享文件存储的需求,在第一次安装Rainbond时,大多数都......
  • Centos7系统,关闭了防火墙,但是有些端口仍然不能telnet通,解决方案
    问题:虚拟机centos7系统,已经关闭firewalld,但是除了22端口,其余端口无法被宿主机访问,本地访问正常解决步骤:1.查看防火墙状态:systemctlstatusfirewalldActive:inactive(dead)–防火墙已关闭Active:active(running)–防火墙已启动2.先开启firewalld:systemctlstartfirewall......
  • 简单实现.NET Hook与事件模拟
    最近玩《星露谷物语》上瘾,本来是看着个休闲游戏,现在玩成修仙游戏了,上百个小时浑身是肝,中午午休习惯都强行给改了。虽然挺有意思,但是太肝了,入坑前请谨慎。补充一下,这个游戏应该是基于XNA/MonoGame写的。这个游戏在丧失焦点的时候会自动暂停,无法自动推进,我觉得效率太低了,为了......
  • 「译文」深入了解Kubernetes和Nomad
    ......