【发布时间】:2012-08-24 08:20:28
【问题描述】:
我确定这一定有人问过并回答过,但我找不到...
我有一个带有这个接口的 WCF 服务:
[ServiceContract(Namespace = WcfNamespace.MyNamespace)]
public interface ILogging
{
[OperationContract(IsOneWay = true)]
void LogInfo(string message);
}
在我的 (.NET 3.5) 客户端应用程序中,我想忽略在调用 LogInfo 期间发生的任何故障,并且我不想阻塞,甚至在网络传输上也不想阻塞。
因此,我想我应该在我的客户端中使用其中一种异步模式。但是,我无法弄清楚“基于事件”或“开始-结束”模式的“忽略结果友好”是否有任何区别。在这个意义上有区别吗?
或者您是否总是必须实现已完成的事件或调用End* 以不泄漏资源? (我依稀记得读过 Skeet 或 Lippert 的类似文章)
【问题讨论】:
-
如果不调用 End 方法,就会引入泄漏。你不需要使用它返回的值,但你需要调用它。
-
我就是这么想的。我有点希望 WCF 生成的代码能做一些神奇的事情,我猜 :)
标签: c# .net wcf asynchronous