[英]Best practices with creating and closing WCF clients for async methods
我熟悉创建WCF客户端,调用标准方法,然后在完成时关闭或中止客户端的最佳实践,但我想知道与客户端的异步方法。
我有一个经理类,它有一些传递事件供消费类附加,以便检索异步调用的结果。 例如:
internal sealed class CommController
{
public event GetClientIdEventHandler ClientIdReceived;
private readonly LocalCommSvcClient _localCommSvcClient = new LocalCommSvcClient();
public CommController()
{
_localCommSvcClient.GetClientIdCompleted += (o, e) => ClientIdReceived(o, e);
}
public void GetClientIdAsync()
{
_localCommSvcClient.GetClientIdAsync();
}
}
但我不知道客户关闭和/或处置的位置。 我无法找到关闭WCF客户端的最佳实践,因为它与异步使用有关。 我应该把我的.Close()和/或.Abort()调用放在哪里?
您需要先打开()客户端,然后才能像发送同步客户端一样发送消息。 在不再需要通信之后(至少在您收到响应时),您应该关闭它()以释放资源。 详细信息取决于服务的绑定和行为配置。 参见例如http://msdn.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.instancecontextmode.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.