异步回调与多播

原创 2007年10月01日 16:23:00

异步回调:实例化委托是一个对象,故可将其作为参数进行传递,也可将其赋值给属性。这样,方法便可将一个委托作为参数来接受,并在以后可以调用该委托。

多播委托:举个例子,del是一个委托,Method1和Method2是obj对象的两个方法,则委托可这样写:

                    del   d1=obj.Method1;

                    del   d2=obj.Method2;

                    del   d3=d1+d2;

                    d3( );

当然Method1和Method2可不属于同一实例,但两个方法都必须不能有返回值。

异步回调和多播的一个例子:

class Program
{
    
public delegate void del(string msg);
 
    
static void Main(string[] args)
    
{
        DelClass myDel
=new DelClass();
        del handle 
= new del(myDel.printMsg);
        handle(
"hello world");
        
        DelHandle myHandle 
= new DelHandle();
        handle 
= new del(myHandle.hangleMsg);
        handle(
"handle msg");
 
        
//异步回调
        printAllMsg("call""back", handle);
 
        
//多播
        del d1 = myDel.method1;
        del d2 
= myDel.method2;
        del d3 
= myDel.printMsg;
        del allMethod 
= d1 + d2;
        allMethod 
+= d3;
 
        allMethod(
"all method ");
 
        Console.ReadLine();
    }

 
    
private static void printAllMsg(string param1, string param2, del myCallBack)
    
{
        myCallBack(param1 
+ param2);
    }

}

 
public class DelClass
{
    
public void printMsg(string msg)
    
{
        Console.WriteLine(msg);
    }

 
    
public void method1(string msg)
    
{
        Console.WriteLine(msg
+"method1");
    }

 
    
public void method2(string msg)
    
{
        Console.WriteLine(msg 
+ "method2");
    }

}

 
public class DelHandle
{
    
public void hangleMsg(string msg)
    
{
        Console.WriteLine(msg);
    }

}

 

相关文章推荐

dataGridView异步回调

  • 2011年01月11日 17:31
  • 89KB
  • 下载

在JNI代码中异步回调Java层方法

楼主开发中有这样的情况,native代码中某回调函数需要回调Java层某方法,由于从c层代码回调时JNIEnv这个指针是取不到的,所以这成了一个问题。  google一下,这个问题还是可以解决的。 ...

iOS 网络开发NSURLConnection——使用block回调方法发送异步请求

一、NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法、请求头、请求体.....

C#异步回调

  • 2014年02月14日 10:39
  • 49KB
  • 下载

Android网络请求处理异步回调风险方案

尊重原创,转载请标明出处http://blog.csdn.net/zcxwww      我们都知道网络请求是异步的,所以就存在异步回调风险,具体来说,就是发出网络请求后,由于各种原因,如果...
  • zcxwww
  • zcxwww
  • 2016年09月04日 12:17
  • 2027

C#基于异步事件回调多线程容器

  • 2013年07月25日 16:24
  • 1.56MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:异步回调与多播
举报原因:
原因补充:

(最多只允许输入30个字)