<span style="font-size:12px;">1.工具:Visual Studio </span>
2.首先我们使用VS创建一个服务
3.然后,我们可以添加一个类,编写自己需要执行的Method
public class Class1
{
Thread thEmsGet;
Thread thSfGet;
public Class1()
{
}
public void ThreadAction()
{
thEmsGet = new Thread(new ThreadStart(EMSGet));
thSfGet = new Thread(new ThreadStart(SFGet));
thEmsGet.Start(); //启动线程
thSfGet.Start();
}
public void ThreadOver()
{
string state="顺丰快递线程结束";
WirteLog(state);
thSfGet.Abort();
string st = "EMS快递线程结束";
WirteLog(st);
thEmsGet.Abort();
}
private void EMSGet()
{
string s = "获取EMS快递";
WirteLog(s);
thEmsGet.Abort();
}
private void SFGet()
{
string s = "获取顺丰快递";
WirteLog(s);
thSfGet.Abort();
}
public void WirteLog(string str)
{
try
{
lock (this)
{
using (StreamWriter sw = File.AppendText(@"D:\service.txt"))
{
sw.WriteLine(str);
sw.Flush();
}
}
}
catch(Exception e)
{
using (StreamWriter sw = File.AppendText(@"D:\service.txt"))
{
sw.WriteLine(e.ToString());
sw.Flush();
}
}
}
}
当然我们再写此类的时候别忘在D盘添加一个service.txt
4.主方法:
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
}
当程序开始执行ServiceBase.Run方法的时候,执行继承ServiiceBase的子类,此项目是Service1.cs类
5.在Service类中,添加一个计时器,这样就可以定时执行。
public partial class Service1 : ServiceBase
{
System.Timers.Timer timer1;
public Class1 c1 = new Class1();
public Service1()
{
InitializeComponent();
timer1 = new System.Timers.Timer();
timer1.Interval = 6000;
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
timer1.Enabled = false;
}
protected override void OnStart(string[] args)
{
timer1.Enabled = true;
}
protected override void OnStop()
{
c1.ThreadOver();
timer1.Enabled = false;
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
c1.ThreadAction();
//SFGet();
//Thread t = new Thread(new ThreadStart(SFGet));
//t.Start();
}
}
6.右击Service1.cs的设计窗口,选择添加安装程序,即可自动生成一个Projectinstall类,同时注意将serviceProcessInstaller1属性 Account 改为LocalService,否则创建服务的时候需要输入用户名和密码
7.WindowsService是不可调试的,只可以生成,生成之后,我们就可以开始Service 的install
找到C:\Windows\Microsoft.NET\Framework64\v4.0.30319 目录下InstallUtil.exe文件,并将InstallUtil.exe文件拷贝到自己程序bin/debug目录下,
运行“CD\ ” 即可进入C盘根目录,再输入“E:” 即可进入E盘根目录,再输入“cd 学习资料\C#\WindowsService1\WindowsWervice2\bin\debug ”即可进入debug目录
然后再输入"InstallUtil.exe WindowsService2.exe"回车即可生成服务。当然在此也可以输入"InstallUtil.exe WindowsService2.exe /u"进行卸载