代码之家  ›  专栏  ›  技术社区  ›  Elan

在IClientChannel代理上调用Abort()会引发异常吗?

  •  5
  • Elan  · 技术社区  · 16 年前

    根据文档和文章,如果遇到意外的异常/错误,建议在客户端代理上调用abort()。请参见以下内容(简化):

    MyServiceClient proxy = null;
    try {
        proxy = new MyServiceClient();
        proxy.DoSomething();
        proxy.Close();
    } catch (Exception ex) {
        if (proxy != null)
            proxy.Abort();
    }
    

    调用abort()是否有可能引发异常本身?调用abort()是否应在自己的try/catch内?

    1 回复  |  直到 12 年前
        1
  •  4
  •   marc_s MisterSmith    16 年前

    不,中止不会失败(但.close()或.dispose()可能会失败)。calling.abort()是终止一个通道的“大锤”方法——它只是被破坏了,不管正在进行的消息处理是什么。

    仅小心使用它-例如,在调用.close()失败时出现异常catch情况。这就是真正的目的和正确的用途。

    马克