none
关于CommunicationObject.BeginOpen 方法 (AsyncCallback, Object)示例 RRS feed

  • 问题

  • 各位朋友好,我原来的代码如下: factory = new DuplexChannelFactory<IChatChannel>(context, binding, new EndpointAddress(meshAddress)); channel = factory.CreateChannel(); channel.open(); 查阅MSDN时,说用BeginOpen(AsyncCallback, Object)开始一个异步操作以打开通信对象。 如上代码的channel.open()该如何修改呢?谢谢!
    2011年7月29日 2:26

答案

  • channel.BeginOpen(o=>{

    if(o.CompletedSynchronously)

    return;

    channel.EndOpen(o);

    },null);

     

    只是一个示意代码,其中你还需要判断通道状态,以确定是否打开了。如果打开失败,你可能还需要调用channel.Close()或者Abourt()

    • 已标记为答案 buhuang 2011年7月31日 7:46
    2011年7月29日 7:53

全部回复

  • channel.BeginOpen(o=>{

    if(o.CompletedSynchronously)

    return;

    channel.EndOpen(o);

    },null);

     

    只是一个示意代码,其中你还需要判断通道状态,以确定是否打开了。如果打开失败,你可能还需要调用channel.Close()或者Abourt()

    • 已标记为答案 buhuang 2011年7月31日 7:46
    2011年7月29日 7:53
  • channel.BeginOpen(o=>{

    if(o.CompletedSynchronously)

    return;

    channel.EndOpen(o);

    },null);

     

    只是一个示意代码,其中你还需要判断通道状态,以确定是否打开了。如果打开失败,你可能还需要调用channel.Close()或者Abourt()

    谢谢!
    2011年7月31日 7:46