zoukankan      html  css  js  c++  java
  • C#实现简单的委托异步调用

     delegate void textAsy();
            static void Main(string[] args)
            {
    
                textAsy t = texts;
                AsyncCallback callBack = new AsyncCallback(sendCallBack);
                t.BeginInvoke(callBack, new { timeNow= DateTime.Now.Ticks,timeStr=DateTime.Now.ToString() });
                Console.WriteLine(DateTime.Now);
                Console.Read();
            }
            public static void texts()
            {
                Thread.Sleep(1100);
                Console.WriteLine(DateTime.Now);
            }
    
            //3)在回调函数中使用StateObject
            private static void sendCallBack(IAsyncResult ar)
            {
    
                Console.WriteLine("异步状态" + ((dynamic)ar.AsyncState).timeNow + ((dynamic)ar.AsyncState).timeStr);
            }
    

      


    由于操作是异步的 我们不知道他什么时候完成 所以一般采用回调函数处理  
     delegate void textAsy();
            static void Main(string[] args)
            {
    
                textAsy t = texts;
                AsyncCallback callBack = new AsyncCallback(sendCallBack);
                t.BeginInvoke(callBack,DateTime.Now.Ticks);
                Console.WriteLine(DateTime.Now);
                Console.Read();
            }
            public static void texts()
            {
                Thread.Sleep(1100);
                Console.WriteLine(DateTime.Now);
            }
    
            //3)在回调函数中使用StateObject
            private static void sendCallBack(IAsyncResult ar)
            {
    
                Console.WriteLine("异步状态"+(long)ar.AsyncState);
            }
    

      

      

    ar.AsyncState 就是 t.BeginInvoke(callBack,DateTime.Now.Ticks);中的参数
     delegate void textAsy();
            static void Main(string[] args)
            {
    
                textAsy t = texts;
                AsyncCallback callBack = new AsyncCallback(sendCallBack);
                t.BeginInvoke(callBack, new { timeNow= DateTime.Now.Ticks,timeStr=DateTime.Now.ToString() });
                Console.WriteLine(DateTime.Now);
                Console.Read();
            }
            public static void texts()
            {
                Thread.Sleep(1100);
                Console.WriteLine(DateTime.Now);
            }
    
            //3)在回调函数中使用StateObject
            private static void sendCallBack(IAsyncResult ar)
            {
    
                Console.WriteLine("异步状态" + ((dynamic)ar.AsyncState).timeNow + ((dynamic)ar.AsyncState).timeStr);
            }
    

      

  • 相关阅读:
    SpringMVC+Spring+Mybatis框架集成
    Mybatis学习总结(三)——SqlMapConfig.xml全局配置文件解析
    Mybatis学习总结(二)——Mapper代理开发
    Mybatis学习总结(一)——入门基础
    Mybatis学习总结(九)——查询缓存
    Mybatis学习总结(八)——延迟加载
    1016 部分A+B (15分)
    1015 德才论 (25分)*
    1014 福尔摩斯的约会 (20分)
    1013 数素数 (20分)
  • 原文地址:https://www.cnblogs.com/ProDoctor/p/6136254.html
Copyright © 2011-2022 走看看