繁体   English   中英

为异步方法创建和关闭WCF客户端的最佳实践

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM