现在的位置: 首页 > 综合 > 正文

Delegate(代理)异常:该委托必须有一个目标

2013年03月12日 ⁄ 综合 ⁄ 共 670字 ⁄ 字号 评论关闭
在代理调用BeginInvoke(new AsyncCallback(callBack), null);  时,
会抛这个异常的原因是该代理变量代理了一个以上的方法.
Ⅰ.可以通过事件将这些方法打包在一起【假设打包的方法为AXPatch()】,然后再用代理调用这个打包的方法【AXPatch()】.
参见:http://www.cnblogs.com/mahope/archive/2005/11/28/286379.html  感觉写的不是很详细.

Ⅱ.直接全部罗列要执行的方法到一个方法里【假设打包的方法为AXPatch()】,然后再用代理调用这个打包的方法【AXPatch()】.

??好像通过事件处理的方法Ⅰ是异步进行的.不确定中......

【追加】
经测试,方法Ⅰ是同步进行的,按照订阅事件的先后顺序执行.
这个顺序不是随机的.
.NET框架中,C#语言使用委托以及事件,可以很好的实现观察者模式。委托相当于“订阅清单”的角色,当目标中关联了该委托的事件被触发时,则委托将自动按序执行观察者注册于委托中的方法。

参见观察者模式:http://www.cnblogs.com/Ryu666/articles/265525.html

【总结】
方法Ⅱ通俗易懂.

 

“/Seo”应用程序中的服务器错误。


该委托必须有一个目标(且仅有一个目标)。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: 该委托必须有一个目标(且仅有一个目标)。

抱歉!评论已关闭.