1

我敢肯定,这一定是有人问过并回答过的,但我找不到...

我有一个带有这个接口的 WCF 服务:

[ServiceContract(Namespace = WcfNamespace.MyNamespace)]
public interface ILogging
{
    [OperationContract(IsOneWay = true)]
    void LogInfo(string message);
}

在我的(.NET 3.5)客户端应用程序中,我想忽略调用过程中发生的任何故障,LogInfo并且我不想阻塞,甚至在网络传输上也不想阻塞。
因此,我想我应该在我的客户端中使用其中一种异步模式。但是,我无法弄清楚“基于事件”或“开始-结束”模式的“忽略结果友好”是否有任何区别。在这个意义上有区别吗?
或者您是否总是必须实现已完成的事件或调用End*才能不泄漏资源?(我隐约记得读过 Skeet 或 Lippert 的类似文章)

4

1 回答 1

2

*Completed如果您使用基于事件的异步模式,则不需要实现任何事件,因此这是一种选择。如果您使用开始/结束模式,则应该调用该End*操作,如果您想真正忽略任何内容,则将其包装在 try/empty 捕获中。

于 2012-08-24T12:20:07.877 回答