欢迎光临

木子屋

标题: 测试Windows服务停止、启动对全局变量的影响

作者: dnawo

日期: 2009-08-18 05:13 PM

分类: Win编程

内容: Windows服务中有一全局变量，Windows服务停止、启动对全局变量会有什么影响？重新初始化？还是仍保持原先的值？做个测试：
Windows服务代码：
复制内容到剪贴板 程序代码using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.IO;
using System.Threading;
namespace WindowsService1
{
partial class TestWS : ServiceBase
{
private bool status = true;//全局变量
public TestWS()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
Log("启动服务");
//定时器
System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Interval = 10 * 1000;
timer1.Elapsed += new System.Timers.ElapsedEventHandler(Done);
timer1.AutoReset = true;
timer1.Enabled = true;
}
protected override void OnStop()
{
Log("停止服务");
}
/// <summary>
/// 定时任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Done(object sender, EventArgs e)
{
Log("TODO... status:" + status.ToString());
status = false;
}
protected void Log(string msg)
{
File.AppendAllText(@"c:\ws.log", string.Format("{0}:{1}\r\n",DateTime.Now.ToString("HH:mm:ss"),msg));
}
}
}
说明：Windows服务中声明了一全局变量status，初始值为true，定时器启动后将status值更改为false，测试停止、启动服务后，status值的变化情况。
测试日志：
引用内容17:05:11:启动服务
17:05:21:TODO... status:True
17:05:31:TODO... status:False
17:05:41:TODO... status:False
17:05:51:TODO... status:False
17:06:01:TODO... status:False
17:06:11:TODO... status:False
17:06:20:停止服务
17:07:56:启动服务
17:08:06:TODO... status:True
17:08:16:TODO... status:False
17:08:26:TODO... status:False
17:08:36:TODO... status:False
17:08:44:停止服务
可见，停止再启动Windows服务后，status全局变量重新初始化为true。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 2.231 ms

返回

标题: 测试Windows服务停止、启动对全局变量的影响

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 2.231 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 2.310 ms

返回