码迷,mamicode.com
首页 > 其他好文 > 详细

Thread

时间:2014-08-01 10:29:21      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:blog   io   art   ar   div   工作   new   log   

 public partial class InterfacePolicyMainServices : ServiceBase
    {
        //服务执行间隔(s)
        /// <summary>
        /// 服务执行间隔(s)
        /// </summary>
        private const int m_updateSeconds = 180;

 //主工作线程
        /// <summary>
        /// 主工作线程
        /// </summary>
        private static Thread NormalRateThread;

 public InterfacePolicyMainServices()
        {            //设置主工作线程
            NormalRateThread = new Thread(BuildNormalRate);

}

 protected override void OnStart(string[] args)
        {
            try
            {
                if (!NormalRateThread.IsAlive)
                    NormalRateThread.Start();
                m_handleLog.Handle("服务已启动", "_启动");
            }
            catch (Exception ex)
            {
                //暂停10秒后
                Thread.Sleep(1000 * 10);
                OnStart(args);
                m_handleLog.Handle(ex.GetExceptionString("政策生成服务启动发生异常:"), "_异常");
            }
        }

        protected override void OnStop()
        {
            try
            {
                //暂停3秒后退出
                Thread.Sleep(1000 * 3);
                if (NormalRateThread.IsAlive)
                    NormalRateThread.Abort();
                m_handleLog.Handle("服务已停止", "_停止");
            }
            catch (Exception ex)
            {
                //暂停10秒后
                Thread.Sleep(1000 * 10);
                OnStop();
                m_handleLog.Handle(ex.GetExceptionString("政策生成服务停止发生异常:"), "_异常");
            }
        }

    /// 生成推送政策(全、增量)
        /// </summary>
        private static void BuildNormalRate()
        {    while (true)
            {
                try
                {   //政策生成logic

     }
                catch (Exception ex)
                {
                    m_handleLog.Handle("政策生成服务(新)发生异常:" + ex.GetExceptionString());
                }
                finally
                {
                    //GC.Collect();
                    //每隔三分钟跑一次
                    Thread.Sleep(m_updateSeconds * 1000);
                }

      }
     }

 

Thread,布布扣,bubuko.com

Thread

标签:blog   io   art   ar   div   工作   new   log   

原文地址:http://www.cnblogs.com/niejun/p/3884238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!