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
  • 相关阅读:
    顺序表(线性表)操作的思想及实现之C#版
    基于CXF Java 搭建Web Service
    敏捷方法 – 灵活,可靠的软件 使用设计模式和敏捷开发
    使用HttpHanlder处理404: File not found
    关于js模块加载的尝试
    Tfs 自动部署 部署图
    jQuery能做到,PHP能做到,C#也能做到
    优化反射性能的总结(下)
    推荐系统
    10个前端开发必备的工具或使用方法
  • 原文地址:https://www.cnblogs.com/xiaobaigang/p/931016.html
Copyright © 2011-2022 走看看