【发布时间】:2014-03-16 08:45:10
【问题描述】:
所以我有以下内容:
private delegate Foo1 GetFooAsync1(Foo1 foo1);
private delegate Foo2 GetFooAsync2(Foo2 foo2);
private delegate Foo3 GetFooAsync3(Foo3 foo3);
private delegate Foo4 GetFooAsync4(Foo4 foo4);
private FooAsync1 foo1;
private FooAsync2 foo2;
private FooAsync3 foo3;
private FooAsync4 foo4;
并且列表一直在继续,然后在一个方法中我不想在每个 EndInvoke 上放置一个 try catch,因为有时它确实会引发异常但它不应该停止系统,并继续另一个Foos.. 如果每个人都有一个 try catch ,那么会在方法中占用太多空间。
有没有一种通用的方式来调用结束调用?所以我可以返回预期的结果?
var result1 = foo1.EndInvoke(fooIAsyncResult);
【问题讨论】:
-
.net Func
和 Action 中有两个 biltin 代表使用它,覆盖 90% 的场景 -
你可以传递一个lambda表达式stackoverflow.com/questions/14297633/…
-
我不明白您为什么要编写将委托作为参数的委托。我写了一个没有这种嵌套的解决方案。如果这没有帮助,请将示例替换为您的实际代码。
标签: c# generics delegates iasyncresult