• 委托


    委托

    public delegate void GreetingDelegate(string name);

    1、委托在编译的时候会被编译成类(class)。因为Delegate是一个类,它定义了方法的类型,所以在任何可以声明类的地方都可以声明委托。

    2、第一次就使用"+=",将出现“使用了未赋值的局部变量”的编译错误。

    3、创建一个委托与实例化一个类何其相似。

      GreetingDelegate delegate1 = new GreetingDelegate(EnglishGreeting);

    4、善用委托,可以隔离变化。

    5、在调用BeginInvoke()之后,客户端从线程池中抓取一个闲置的线程。BeginInvoke()最后两个此参数为AsyncCallback、Object。前面的参数类型与委托定义相同。

    6、如果抛出异常,.NET会捕捉到它,但是只有在调用EndInvoke()的时候,才会将异常重新招聘。EndInvoke()接受IAsyncResult类型的参数。EndInvoke()的返回值就是方法的返回值。

         调用EndInvoke()时,如果异步调用的方法没有执行完毕,则会中断当前线程去等待该方法。

    7、AsyncResult包含了对调用BeginInvoke()的委托与引用,它还包含了BeginInvoke()的最后一个Object类型的参数。

      AsyncResult.AsyncDelegate.

      AsyncResult.AsyncState.

  • 相关阅读:
    BZOJ 2724: [Violet 6]蒲公英
    codeforces Lightsabers (hard)
    BZOJ 3884: 上帝与集合的正确用法
    BZOJ 4809: 皇后
    python的变量类型(Day6)
    Python集合方法整理(Day9)
    基本运算符与流程控制(Day5)
    基本数据类型(Day4)
    第一个Python程序(Day3)
    操作系统(Day2.5)
  • 原文地址:https://www.cnblogs.com/tekkaman/p/6171057.html
Copyright © 2020-2023  润新知