Как я мог знать, что для обратного вызова BeginAcceptSocket требуется параметр IAsyncResult? - PullRequest
0 голосов
/ 18 декабря 2009

Мне интересно, где я могу узнать, что AcceptClient в качестве обратного вызова BeginAcceptSocket должен иметь 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)
    {
    }

Ответы [ 2 ]

0 голосов
/ 18 декабря 2009

Из его документации вы знаете, что BeginAcceptSocket ожидает AsyncCallback в качестве первого параметра, поэтому следующим шагом будет чтение документации для AsyncCallback делегат , который сам является типом со следующей сигнатурой метода:

public delegate void AsyncCallback(IAsyncResult ar)
0 голосов
/ 18 декабря 2009

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

В разделе параметров говорится, что первый параметр ожидает System.AsyncCallback, который является делегатом, который ожидает аргумент типа System.IAsyncResult.

...