Windows服务简单实例

时间:2023-03-09 23:38:52
Windows服务简单实例

1.定时器使用

    partial class TimerService : ServiceBase
{
public TimerService()
{
InitializeComponent();
} Timer timer = new Timer();
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
AddLog("****服务启动"); timer.Elapsed += timer_Elapsed;
timer.Interval = ;
timer.Start();
} int number = ;
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
try
{
number++;
AddLog("第" + number + "次执行方法");
AddLog("当前时间:" + DateTime.Now.ToLongTimeString());
}
catch (Exception)
{ }
} protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
AddLog("****服务终止");
timer.Stop();
} public void AddLog(string str)
{
using (StreamWriter sw = new StreamWriter(@"G:\log.data", true))
{
sw.WriteLine("****************************************");
sw.WriteLine(str);
}
}
}
2.记录日志和数据库访问
    partial class MessageBoxSer : ServiceBase
{
Thread mainThread;
public MessageBoxSer()
{
InitializeComponent(); mainThread = new Thread(new ThreadStart(ThreadFunc));
mainThread.Priority = ThreadPriority.Normal;
} public static void ThreadFunc()
{
//while (true)
//{
// Thread.Sleep(1000);
// MessageBox.Show("asdfasdf");
//} while (true)
{ // MessageBox.Show("asdfasdf");
Thread.Sleep(); //修改数据库
SerTableDA.AddData(); //记录日志
//try
//{
// using (StreamWriter sw = new StreamWriter(@"G:\log.data", true))
// {
// sw.WriteLine(DateTime.Now.ToLongTimeString() + "执行循环代码");
// }
//}
//catch (Exception ex)
//{ //}
}
} protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
mainThread.Start();
} protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
mainThread.Abort();
}
}