1

处理源自多次调用的 WebService 方法的 -Completed 事件的最佳实践是什么,并且 -Completed 事件被订阅了很多次。

这个答案建议从事件参数中识别结果(在本例中使用 e.Type 但也可以使用 e.Result.Id 或任何有助于识别所需内容的东西来完成)。

另一方面,这个答案显示了每次调用的客户端初始化。

最好做什么?

  • 从其内容/附加信息中识别结果;
  • 使用多个客户端,每个事件等待者一个;
  • 还有什么?

问题是针对 .NET 4.0 和更新版本的,但如果您有一个适用于早期版本的“最佳实践”并且仍然可行,请随意告诉。

4

2 回答 2

0

我以前使用的一种方法是链接 Web 服务调用。因此,当第一次调用完成时,我从已完成的事件中注销,然后使用不同的回调方法注册到另一个或相同的事件,依此类推......我知道这不是完美的方法,但延迟很小,不要说缺席,它比必须管理许多代理实例更简单。如果您需要并行执行调用,我们确实考虑过拥有多个客户端,这可能是要走的路!

于 2012-11-28T03:47:16.390 回答
0

根据您尝试执行的操作,您可能希望创建一个类来表示涉及 Web 服务的每个逻辑任务。为逻辑任务的每个实例创建该类的实例,并为该类提供事件。

每个事件的sender参数将是包装类的实例。然后,您可以让一段代码处理每个此类逻辑线程的事件,“逻辑线程”将包含所有必要的状态。

于 2012-11-28T03:51:41.657 回答