功能说明:C#创建一个windows服务,服务启动时D:\mcWindowsService.txt写入数据,服务运行期间每隔两秒写入当前时间。
原理这些就不说了,三语两语说不清楚,直接贴一个实例。不能贴图片!!那个压缩文里面是word文档!!有图有真相
1.建立空白项目
2.添加创建windows服务需要的引用,选择System.ServiceProcess。
3.创建服务类,继承ServiceBase,类的源代码在后面。
4. 添加windows服务的安装类。
(1)在类名或者解决方案中新建视图:
(2)上一步后会出来类的视图,右键选择查看设计器:
(3)在设计视图里面添加安装器(有可能会弹出警告框,如图,不用管):
服务创建完成!
安装运行就不用说了吧!!
6 服务类源代码():
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace SR171
{
class Service17: System.ServiceProcess.ServiceBase
{
public Service17()//可以自己设定
{
this.ServiceName = "MyServiceForShowTime";
this.CanStop = true;
this.CanPauseAndContinue = true;
this.AutoLog = true;
#region 定时器事件
Timer aTimer = new Timer(); //System.Timers,不是form的
aTimer.Elapsed += new ElapsedEventHandler(TimedEvent);
aTimer.Interval = 2 * 1000; //配置文件中配置的秒数
aTimer.Enabled = true;
#endregion
}
public static void Main()//必须写
{
System.ServiceProcess.ServiceBase.Run(new Service17());
}
protected override void OnStart(string[] args)//自己根据要求覆写
{
FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine("mcWindowsService: Service Started" + DateTime.Now.ToString() + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
protected override void OnStop()
{
FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(" mcWindowsService: Service Stopped " + DateTime.Now.ToString() + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
private static void TimedEvent(object source, ElapsedEventArgs e) //运行期间执行
{
FileStream fs = new FileStream(@"d:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(" Running.11.. " + DateTime.Now.ToString() + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
}
}
- 大小: 96.4 KB
- 大小: 25.3 KB
- 大小: 101.7 KB
- 大小: 82.8 KB
- 大小: 75.8 KB
- 大小: 42.1 KB
- 大小: 30.2 KB
- 大小: 45.1 KB
- 大小: 81.7 KB
分享到:
相关推荐
在C#中创建Windows服务并结合使用Timer定时器是一个常见的任务,这主要应用于需要在后台自动执行周期性工作的系统。以下是对这个主题的详细说明: 首先,创建一个空白的项目,选择.NET Framework作为目标框架,因为...
在Windows应用程序、服务或控制台程序中,C#定时器常常被用来创建后台任务、监控、更新用户界面或其他需要定时触发的功能。 1. **Timer类的介绍** C#中的Timer类主要存在于System.Threading命名空间下,有两种常见...
多媒体定时器(Multimedia Timer)是Windows API提供的一种高级定时器服务,相比于系统定时器和控件定时器,它具有更高的精度和更低的延迟,适合于需要定时精确执行任务的场合。C++/CLR是一种混合编程技术,允许C#...
### C# 定时器(计时器)的使用详解 #### 一、引言 在C#编程中,定时器(计时器)是一种非常有用的工具,它可以帮助开发者实现定时执行某些操作的需求。无论是简单的计时应用还是复杂的后台任务处理,定时器都是不...
【标题】:“用C#源代码制作的定时器” 在编程领域,定时器是一个非常重要的组件,它允许...以上就是关于这个C#定时器程序可能涉及的一些核心知识点。这个程序虽然简单,但对于学习C#和理解事件驱动编程是很有帮助的。
- 创建一个Windows Forms定时器,可以在Form的Designer中拖放一个Timer控件,或者在代码中实例化一个新对象,例如: ```csharp Timer timer = new Timer(); ``` - 设置定时器的Interval属性,单位为毫秒,表示...
在windows服务中如何使用定时器的时候一直失效, 以前是直接拖入timer控件,但是不能直接运行,后来在网上找了一段程序,好使了。 代码如下://开始事件 protected override void OnStart(string[] args) { //定时...
3. **高精度**: 由于基于多媒体定时器,MmTimer能够提供比标准C#定时器更高的精度,对于需要精细时间控制的场景,这是一个巨大的优势。 4. **跨线程回调**: 定时器回调可以在指定的线程上下文中执行,确保了与UI或...
本篇将详细讲解如何使用C#实现`Timer`定时器,以实现秒的自加功能。 首先,我们要了解`System.Timers.Timer`类。这个类是.NET框架提供的,常用于多线程环境,它的工作方式是在指定的时间间隔后引发`Elapsed`事件。...
当创建一个定时器实例后,通常需要设置其 `Interval` 属性来确定间隔时间,即每隔多少毫秒触发一次 `Elapsed` 事件(对于 `System.Timers.Timer`)或 `Tick` 事件(对于 `System.Windows.Forms.Timer`)。...
在C#里关于定时器的类就有3个: (1)定义在System.Windows.Forms里 (2)定义在System.Threading.Timer类里 (3)定义在System.Timers.Timer类里 Timer 用于以用户定义的事件间隔触发事件。Windows 计时器是为...
下面我们将深入探讨C#定时器的源代码及其工作原理。 C#中的定时器主要有两种类型:System.Timers.Timer和System.Windows.Forms.Timer。前者是基于线程池的,适用于服务器端应用;后者则主要用于Windows Forms应用...
在本文中,我们将深入探讨如何在C#中使用时钟控件Timer以及如何通过Web服务接口(WebService)进行通信。这个实例特别适合初学者,它将帮助你理解这两个关键概念,并教你如何将它们结合起来实现一个实用的应用。 ...
在C#编程中,`Time`控件实际上指的是`System.Windows.Forms.Timer`控件,而非一个直接名为"Time"的控件。这个控件在Windows Forms应用程序中被广泛用于实现定时功能,例如执行周期性的任务或者倒计时。在本实例中,...
在示例代码中,我们创建了一个名为`timer`的`Timer`实例: ```csharp Timer timer = new Timer(); ``` 接下来,我们需要为`Elapsed`事件添加一个事件处理程序,这个事件会在每次计时器触发时被调用。在本例中,...
- 创建实例:`System.Timers.Timer timer = new System.Timers.Timer();` - 设置间隔:`timer.Interval = 1000;` 这里1000代表1秒。 - 启动定时器:`timer.Start();` - 注册事件处理程序:`timer.Elapsed += new...
本压缩包包含了一个C#定时器的源代码,让我们深入探讨一下相关的知识点。 首先,C#中的定时器主要有两种类型:System.Threading.Timer和System.Windows.Forms.Timer。前者适用于控制台应用和非UI线程,而后者则主要...
在C#编程中,Winform定时器(System.Windows.Forms.Timer)是经常被用来实现周期性操作的工具。这个“C#Winform定时器误差测试实例”着重探讨了定时器触发事件的实际间隔与预设间隔之间的误差问题。在实际应用中,如...