Topshelf C# 开发 Windows 服务程序最简单的方式
Topshelf 官方网站: http://topshelf-project.com/
Topshelf 文档地址: https://topshelf.readthedocs.io/en/latest/index.html
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Timers;
using Topshelf;
using System.Threading;
namespace TopshelfDemo
{
public class ServiceRunner : ServiceControl, ServiceSuspend
{
Thread th = null;
void ThreadMethod()
{
while (true)
{
Console.WriteLine("time is {0} ", DateTime.Now);
System.Threading.Thread.Sleep(1000);
}
}
public bool Continue(HostControl hostControl)
{
throw new NotImplementedException();
}
public bool Pause(HostControl hostControl)
{
throw new NotImplementedException();
}
public bool Start(HostControl hostControl)
{
th = new Thread(new ThreadStart(ThreadMethod));
th.Start();
return true;
}
public bool Stop(HostControl hostControl)
{
th.Abort();
return true;
}
}
public class Program
{
public static void Main()
{
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"));
HostFactory.Run(x =>
{
x.UseLog4Net();
x.Service<ServiceRunner>();
x.SetDescription("测试服务服务");
x.SetDisplayName("lxw_Service");
x.SetServiceName("lxw_Service");
x.EnablePauseAndContinue();
});
}
}
}
安装服务、启动服务

查看服务

停止、卸载

Topshelf C# 开发 Windows 服务程序最简单的方式的更多相关文章
- 关于开发Windows服务程序容易搞混的地方!
在开发Windows服务程序时,我们一般需要添加安装程序,即:serviceInstaller,里面有几个关于名称属性,你都搞明白了吗? 1.Description:表示服务说明(描述服务是干什么的) ...
- 开发WINDOWS服务程序
开发WINDOWS服务程序 开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了,打开Service1窗口,有几个属性说明 ...
- 开发Windows程序的三种方式
软件开发方式一共有三种:SDK方式.MFC开发方式.托管环境的开发都是基于消息的开发 SDK方式 原装api的调用SDK方式使用C语言和Windows应用程序编程接口(Windows API)来开发W ...
- vs下开发windows服务程序
一. VS2012下开发Windows服务 1. 打开VS2012,新建项目,选择Windows服务,此处我以开发一个定时自动发送邮件的服务来做介绍,如下图: 2. 创建好后,编译器会自动创建一些文件 ...
- C#开发Windows服务 附简单实例实现禁止QQ运行
本实例主要实现下面三个基本功能 1.C#开发windows服务 2.禁止QQ等程序运行 3.为windows服务创建自动安装程序 下面针对这三个基本功能进行实现 一.C#开发windows服务 Win ...
- Delphi开发Windows服务程序
开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了 打开Service1窗口,有几个属性说明一下: AllowPause ...
- topshelf 开发windows 服务资料
官方配置 http://docs.topshelf-project.com/en/latest/configuration/config_api.html#service-start-modes to ...
- C#开发Windows服务详细流程
1.Windows服务简单介绍 Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序,主要用于长时间运行的功能或者执行定时任务.一般情况下,用户不能通过用户界面来安装和启 ...
- 使用Visual Studio 2015 Community 开发windows服务
昨天研究在.NET下开发Windows服务程序,期间遇到一些小问题,这里仅将自己的开发过程和需要注意的地方写下和广大网友分享…… 1.基础 Windows服务是指系统启动时能够自己运行的程序.W ...
- .net开发windows服务
最近一个月都异常的繁忙,项目进度非常的紧,回头看看自己的blog,整整一个5月都没有一篇文章,非常惭愧,现在补几篇文章,介绍一下我最近关注的技术.这篇文章将介绍Windows服务程序的开发.摘要:本文 ...
随机推荐
- 【Unity3D】Transform组件
1 前言 每个游戏对象有且仅有一个 Transform 组件,Transform 组件保存了游戏对象的位置信息,用户可以通过操作 Transform 组件实现对游戏对象的平移.旋转.缩放等变换.每 ...
- 【OpenGL ES】EGL+FBO离屏渲染
1 前言 FBO离屏渲染 中使用 GLSurfaceView 来驱动 Renderer 渲染图片,为了隐藏 GLSurfaceView,将其设置为透明的,并且宽高都设置为1.本文将使用 EGL 代 ...
- React虚拟DOM的理解
React虚拟DOM的理解 Virtual DOM是一棵以JavaScript对象作为基础的树,每一个节点可以将其称为VNode,用对象属性来描述节点,实际上它是一层对真实DOM的抽象,最终可以通过渲 ...
- Java中的Try with Resources语句介绍
1.介绍 从Java7诞生了try-with-resources,这家伙可以在资源使用完后实现自动关闭回收.想想我们之前打开一个文件或流对象用完咋整的,是不是finally语句块中手动close的. ...
- Oracle ascii函数
一 简介 Oracle ascii函数用于返回单个字符的数字代号. 二 语法 ASCII( single_character ) 参数说明: 代表只能输入单个字符,如果输入多个,oracle只会返 ...
- SpringBoot中Redis的基础使用
基础使用 首先引入依赖 <!-- redis依赖--> <dependency> <groupId>org.springframework.boot</gro ...
- QT 无法识别某些字体导致程序启动失败
有用户反馈启动程序时,没有出现 UI 界面,程序跟 "闪退了一样",查看日志,没有发现闪退或者报错异常,后面远程用户电脑并尝试解决 研究分析:在用户电脑上运行 debug 包,会出 ...
- TCP协议的流量控制和拥塞控制
一开始,我总是容易把这2个概念搞混淆了,因此,为了加深理解,我写出来整理下思路. 一:流量控制 什么是流量控制,它涉及到哪些内容呢? 首先,我们看看一个最简单的tcp传输涉及到哪些东西 发送端,数据, ...
- MySQL重新设置auto_increment值
需求描述 通常,我们都会在数据库表中设置一个自增字段作为主键,该字段的值会随着添加新记录而自增. 同时也必须注意,这个自增字段的值只会一直增加,即使把记录删除了,该自增字段的值也不会变小. 因此,就会 ...
- 【Azure 应用服务】Azure Data Factory中调用Function App遇见403 - Forbidden
问题描述 在Azure Data Factory (数据工厂)中,调用同在Azure中的Function App函数,却出现403 - Forbidden错误. 截图如下: 问题解答 访问Azure ...