一款非常好用的 Windows 服务开发框架,开源项目Topshelf

  Topshelf是一个开发windows服务的比较好的框架之一,以下演示如何开发Topshelf服务。

1、首先打开你的vs。新建一个TopshelfStudy控制台程序,如下图所示:

这是我用vs2017新建的。

2、然后选中你的项目,运行Nuget,可以手工搜索Topshelf进行安装,也可以通过程序包管理器控制台进行安装,Install-Package Topshelf,具体操作如下。

因为我选择的安装版本支持的比较高,这里为了不出问题。把项目的目标框架设置为.NET FrameWork 4.6 。低版本的不支持

3、安装成功之后会有如下引用。

4、接下来创建TimeReporter.cs类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;

namespace TopshelfStudy
{
    class TimeReporter
    {
        private readonly Timer _timer;

        public TimeReporter()
        {
            _timer = new Timer(1000) { AutoReset = true };

            _timer.Elapsed += (sender, eventArgs) => Console.WriteLine("当前时间:{0}", DateTime.Now);
        }

        public void Start() { _timer.Start(); }
        public void Stop() { _timer.Stop(); }
    }
}

 

 

 5、Program.cs代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;

namespace TopshelfStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.Service<TimeReporter>(s =>
                {
                    s.ConstructUsing(settings => new TimeReporter());
                    s.WhenStarted(tr => tr.Start());
                    s.WhenStopped(tr => tr.Stop());
                });

                x.RunAsLocalSystem();

                x.SetDescription("定时报告时间");
                x.SetDisplayName("时间报告器");
                x.SetServiceName("TimeReporter");
            });
        }
    }
}

6、然后尝试运行代码,结果如下:

 

转载于:https://www.cnblogs.com/yuzhou133/p/10223319.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值