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);
            }
        }
  • 相关阅读:
    angular中集中页面传参(我只是知识的搬运工)
    使用Cookie传递参数 ,a页面保存Cookie,b页面读取,代码如下:
    获取并处理地址栏中参数方法
    常见的css命名规范/ID命名规范/常用功能模块的命名
    angularjs 1.x 项目完整的较完整的登录验证具体代码(仅供参考)
    用angular自带的方法获取input中内容(以用户名和密码为例)的字符串长度方法
    jquery 层弹窗传值
    伯乐在线node高手的基础经验 您值得一读
    javascript 代码规范
    正确看待技术
  • 原文地址:https://www.cnblogs.com/-hao/p/9944813.html
Copyright © 2011-2022 走看看