В документации MSDN указано, что:
как минимум, ваш параметр состояния должен содержать подключенный сокет или сокет по умолчанию, используемый для связи.Так как вы хотите получать полученные данные в вашем методе обратного вызова, вы должны создать небольшой класс или структуру для хранения буфера чтения и любой другой полезной информации.Передайте экземпляр структуры или класса методу BeginReceive через параметр состояния.
Однако я вызываю BeginRecieve и передаю метод экземпляра как мой AsyncCallback:
class MyClass
{
private Socket mysocket;
private void callback(IAsyncResult Result)
{
Record record = this.mysocket.EndReadRecord(Result);
// Do things
this.mysocket.BeginReadRecord(new AsyncCallback(callback), null);
}
// Other methods
}
С помощьюПредположение, что mysocket
устанавливается только один раз (во время конструктора), есть ли необходимость передавать мой сокет как часть параметра состояния, или безопасно использовать поле экземпляра mysocket
?