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);
            }
        }
  • 相关阅读:
    线程安全(上)--彻底搞懂volatile关键字
    数据库设计三大范式
    1、框架及环境搭建
    约瑟夫问题
    链表(上):如何实现LRU缓存淘汰算法?
    为什么很多编程语言中数组都是从 0 开始编号?
    mac 终端命令小结
    复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度
    复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
    程序员少走弯路的10条忠告和成就一生的10个经典故事
  • 原文地址:https://www.cnblogs.com/-hao/p/9944813.html
Copyright © 2011-2022 走看看