Я собираюсь предположить, что вы используете System.Net.Sockets.Socket
здесь. Если вы посмотрите на перегрузки BeginReceive , вы увидите параметр object
(именованное состояние). В качестве этого параметра вы можете передать произвольное значение, и оно будет перенаправлено на ваш AsyncCallback
обратный вызов. Затем вы можете получить к нему доступ, используя свойство AsyncState
объекта IAsyncResult
, переданного в ваш обратный вызов. Например,
public void SomeMethod() {
int myImportantVariable = 5;
System.Net.Sockets.Socket s;
s.BeginReceive(buffer, offset, size, SocketFlags.None, new new AsyncCallback(OnDataReceived), myImportantVariable);
}
private void OnDataReceived(IAsyncResult result) {
Console.WriteLine("My Important Variable was: {0}", result.AsyncState); // Prints 5
}