首页 > 代码库 > Thread
Thread
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); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。