【问题标题】:How could I know that BeginAcceptSocket callback needs IAsyncResult parameter?我怎么知道 BeginAcceptSocket 回调需要 IAsyncResult 参数?
【发布时间】:2009-12-18 22:47:00
【问题描述】:

我很好奇在哪里可以找到作为 BeginAcceptSocket 回调的 AcceptClient 需要将 IAsyncResult 作为参数。在 MSDN 文章中只提到 BeginAcceptSocket 的返回值为 IAsyncresult。但是我怎么知道它必须传递给回调? 谢谢!

     public server(int port)
    {
        listener = new TcpListener(System.Net.IPAddress.Any, port);
        listener.BeginAcceptSocket(this.AcceptClient,null);

    }
    private void AcceptClient(IAsyncResult ar)
    {
    }

【问题讨论】:

    标签: c# sockets tcplistener


    【解决方案1】:

    its documentation, 你知道BeginAcceptSocket 需要一个AsyncCallback 作为它的第一个参数,所以下一步是读取the documentation for the AsyncCallback delegate,它本身就是一个具有以下方法签名的类型:

    public delegate void AsyncCallback(IAsyncResult ar)
    

    【讨论】:

      【解决方案2】:

      http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.beginacceptsocket.aspx

      参数部分告诉您第一个参数需要 System.AsyncCallback,这是一个需要 System.IAsyncResult 类型参数的委托。

      【讨论】:

      • 但是没有说AsyncCallback期望IAsyncResult
      • AsyncCallback 委托的第一个参数是一个 IAsyncResult。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多