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);
            }
    

      

  • 相关阅读:
    Matlab中的随机数生成器
    Matlab中的随机数生成器
    Matlab 函数返回矩阵
    Matlab 函数返回矩阵
    Matlab 函数返回矩阵
    矩阵同列同行复制原理
    矩阵同列同行复制原理
    Apache/RewriteRule
    使用google map v3添加经纬度信息
    评论:一站式学习C编程(升级版) (平装)
  • 原文地址:https://www.cnblogs.com/ProDoctor/p/6136254.html
Copyright © 2011-2022 走看看