异步回调:异步回调与多播学习

异步回调:实例化委托是一个对象,故可将其作为参数进行传递,也可将其赋值给属性。这样,方法便可将一个委托作为参数来接受,并在以后可以调用该委托。
多播委托:举个例子,del是一个委托,Method1和Method2是obj对象的两个方法,则委托可这样写:
deld1=obj.Method1;
deld2=obj.Method2;
deld3=d1+d2;
d3();
当然Method1和Method2可不属于同一实例,但两个方法都必须不能有返回值。
异步回调和多播的一个例子:

classProgram
...{
publicdelegatevoiddel(stringmsg);

staticvoidMain(string[]args)
...{
DelClassmyDel=newDelClass();
delhandle=newdel(myDel.printMsg);
handle(\"helloworld\");

DelHandlemyHandle=newDelHandle();
handle=newdel(myHandle.hangleMsg);
handle(\"handlemsg\");

//异步回调
printAllMsg(\"call\",\"back\",handle);

//多播
deld1=myDel.method1;
deld2=myDel.method2;
deld3=myDel.printMsg;
delallMethod=d1+d2;
allMethod+=d3;

allMethod(\"allmethod\");

Console.ReadLine();
}

privatestaticvoidprintAllMsg(stringparam1,stringparam2,delmyCallBack) [Page]
...{
myCallBack(param1+param2);
}
}

publicclassDelClass
...{
publicvoidprintMsg(stringmsg)
...{
Console.WriteLine(msg);
}

publicvoidmethod1(stringmsg)
...{
Console.WriteLine(msg+\"method1\");
}

publicvoidmethod2(stringmsg)
...{
Console.WriteLine(msg+\"method2\");
}
}

publicclassDelHandle
...{
publicvoidhangleMsg(stringmsg)
...{
Console.WriteLine(msg);
}
}
Tags:  三相异步电动机 异步多线程 什么是异步回调 异步回调

延伸阅读

最新评论

发表评论