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
  • 相关阅读:
    centOS7 查看防火墙状态 开放端口
    PHP之Trait详解 转
    ps 树形显示
    composer 打印美化
    第一章 Java Web应用开发技术
    团队博客20
    团队博客19
    团队博客18
    团队博客17
    团队博客16
  • 原文地址:https://www.cnblogs.com/xiaobaigang/p/931016.html
Copyright © 2011-2022 走看看