zoukankan      html  css  js  c++  java
  • 异步调用委托的3种方法

    异步调用委托的3种方法

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace AsyncDelegate
    {
        
    class Program
        
    {

            
    delegate int IntIntDelegate(int x);//生明一个委托

            
    int Square(int x)
            
    {
                
    return x * x;
            }


             
    void AsyncDelegateExample()
            
    {
                
                IntIntDelegate f 
    = Square;

                
    //方法一
                IAsyncResult ar1=f.BeginInvoke(10,null,null);
                
    while (!ar1.IsCompleted)//循环直到异步完成
                    Console.WriteLine(f.EndInvoke(ar1));
                
    //do some work
                
                 
                
    //方法二
                IAsyncResult ar2= f.BeginInvoke(20nullnull);
                
    //do some work
                ar2.AsyncWaitHandle.WaitOne();//等待直到异步完成
                Console.WriteLine(f.EndInvoke(ar2));

                
    //方法三  完成后调用回调函数,取得结束通知的结果
                IAsyncResult ar3 = f.BeginInvoke(30, AsyncDelegateCallback, f);

            
            }


            
    void AsyncDelegateCallback(IAsyncResult ar)//回调函数
            {
                IntIntDelegate f 
    = (IntIntDelegate)ar.AsyncState;
                
    if (ar.IsCompleted)
                
    {
                    Console.WriteLine(f.EndInvoke(ar));
                }


                
    //Console.WriteLine(f.EndInvoke(ar));
                
            }


            
    static void Main(string[] args)
            
    {
                Program test 
    = new Program();
                test.AsyncDelegateExample();
    //客户端调用
            }

        }

    }


    输出: 100
              400
              900
  • 相关阅读:
    Java
    oracle与mysql(2)
    oracle与mysql
    junit中的assert方法总结
    java Future用法和意义一句话击破
    Java序列化中的SerialVersionUid
    Nginx了解
    现如今的CDN网站加速技术,细说CDN
    slf4j日志的使用
    IDEA 快捷键整理
  • 原文地址:https://www.cnblogs.com/xiaobaigang/p/931016.html
Copyright © 2011-2022 走看看