2012-04-17 77 views
3

我熟悉创建WCF客户端,调用标准方法,然后在完成时关闭或中止客户端的最佳做法,但我想知道有关客户端的异步方法。为异步方法创建和关闭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()调用?

+0

我认为它经历了一个标准的REST请求/响应循环(可能通过HTTP),由于它是无状态的,因此没有必要“关闭”客户端,因为首先没有真正打开任何东西。虽然我在这方面可能是错的,但我没有潜心钻研WCF的真正细节。 – 2012-04-17 16:10:24

回答