zoukankan      html  css  js  c++  java
  • 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();
            }
        }
  • 相关阅读:
    聊聊“装箱”在CLR内部的实现
    Jenkins多环境持续集成架构实践
    .NET Core 学习资料精选:进阶
    .NET Core 学习资料精选:入门
    Docker 常用命令(.NET Core示例)
    Vistual Studio 安装、Sql Server 安装
    .NET项目迁移到.NET Core操作指南
    站点部署,IIS配置优化指南
    .NET Core开源:IIS集中化Web管理工具
    jenkins:一键回滚站点集群
  • 原文地址:https://www.cnblogs.com/tianma3798/p/3835740.html
Copyright © 2011-2022 走看看