zoukankan      html  css  js  c++  java
  • C# Global定时执行Global文件aTimer处理

        public class Global : System.Web.HttpApplication
        {
            private static event Action eventActions;
            /// <summary>
            ///  当前正在运行的异步线程池
            /// </summary>
            private static Dictionary<string, IAsyncResult> diyAsync = new Dictionary<string, IAsyncResult>();
            protected void Application_Start(object sender, EventArgs e)
            {
                eventActions += MyClass.Writer;//任务(可以处理多个方法)
                System.Timers.Timer aTimer = new System.Timers.Timer();
                aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
                aTimer.Interval = 200;
                aTimer.Enabled = true;
            }
            /// <summary>
            /// 定时执行任务
            /// </summary>
            /// <param name="source"></param>
            /// <param name="e"></param>
            private static void OnTimedEvent(object source, ElapsedEventArgs e)
            {
                foreach (Action action in eventActions.GetInvocationList())
                {
                    try
                    {
                        if (diyAsync.Any(p => p.Key == action.Method.Name) && !diyAsync[action.Method.Name].IsCompleted)
                            continue;
                        diyAsync[action.Method.Name] = action.BeginInvoke(null, null);
                    }
                    catch (Exception ex)
                    {
                        //任务执行出错
                    }
                }
            }
            protected void Session_Start(object sender, EventArgs e)
            {
                string name = System.Reflection.MethodBase.GetCurrentMethod().Name;
                WH_WriteLog.WriteLog(name);
            }
    
            protected void Application_BeginRequest(object sender, EventArgs e)
            {
               string name=System.Reflection.MethodBase.GetCurrentMethod().Name;
               WH_WriteLog.WriteLog(name);
            }
    
            protected void Application_AuthenticateRequest(object sender, EventArgs e)
            {
                string name=System.Reflection.MethodBase.GetCurrentMethod().Name;
                WH_WriteLog.WriteLog(name);
            }
    
            protected void Application_Error(object sender, EventArgs e)
            {
                string name = System.Reflection.MethodBase.GetCurrentMethod().Name;
                WH_WriteLog.WriteLog(name);
                WH_WriteLog.WriteLog(e.ToString());
            }
    
            protected void Session_End(object sender, EventArgs e)
            {
                string name = System.Reflection.MethodBase.GetCurrentMethod().Name;
                WH_WriteLog.WriteLog(name);
            }
    
            protected void Application_End(object sender, EventArgs e)
            {
                string name = System.Reflection.MethodBase.GetCurrentMethod().Name;
                WH_WriteLog.WriteLog(name);
            }
        }
    
        public class MyClass
        {
            public static void Writer()
            {
                string name = System.Reflection.MethodBase.GetCurrentMethod().Name;
                WH_WriteLog.WriteLog(name);
            }
        }
  • 相关阅读:
    C++数据结构与算法(第4版) 完整版 高清pdf扫描版[193MB] 下载
    Streams AQ: enqueue blocked on low memory等待事件导致expdp导出缓慢问题
    Unity中使用 UGUI Toggle 和 Toggle Group 做单选列表
    unity UGUI动态滑动列表
    在Unity 中调用打印机来打印图片
    Unity3D中读取CSV文件
    unity 获取网络时间和本地时间
    win10右击无法新建文件,只能新建文件夹和快捷方式
    python笔记二、基础知识
    python笔记一、部分插件的作用及安装方法
  • 原文地址:https://www.cnblogs.com/-hao/p/9944813.html
Copyright © 2011-2022 走看看