我确信这一定是被问到并回答的,但我找不到......
我有一个带有此接口的WCF服务:
[ServiceContract(Namespace = WcfNamespace.MyNamespace)]
public interface ILogging
{
[OperationContract(IsOneWay = true)]
void LogInfo(string message);
}
在我的(.NET 3.5)客户端应用程序中,我想忽略在调用LogInfo
期间发生的任何故障,我不想阻止,甚至不在网络传输上。
因此,我想我应该在我的客户端使用其中一个异步模式。但是,我无法弄清楚“基于事件的”或“开始结束”模式的“忽略结果友好”是否存在任何差异。这种意义上有区别吗?
或者你总是要实现一个已完成的事件或者无论如何都要调用End*
以免泄漏资源? (我模糊地回忆起Skeet或Lippert读过的东西)
答案 0 :(得分:2)
如果您使用基于事件的异步模式,则不需要实施任何*Completed
事件,因此这是一个选项。如果你使用开始/结束模式,你应该调用End*
操作,如果你想真的忽略任何东西,请将它包装在try / empty catch中。