首页 > 代码库 > Windows服务简单实例

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 = 1000;            timer.Start();        }        int number = 0;        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(3000);                //修改数据库                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();        }    }