A простой вопрос действительно, но один, где я тоже не могу найти андерсеров.C# .. Асинхронные сокеты .. где хранится объект состояния?
Когда я выполняю операцию асинхронных сокетов, такие как:
socket.BeginSend
(
new byte[]{6}, // byte[] | buffer
0, // int | data to send buffer offset
1, // int | data to send length
SocketFlags.None, // enum | dunno :)
new AsyncCallback(OnSend), // AsyncCallback | callback method
STATEOBJECT // object | ..state object..
);
Он работает, и при завершении он вызывает параметр AsyncCallback, проходя вместе с ним и IAsyncResult.
void OnSend(IAsyncResult ar)
{
object STATEOBJECT = ar.AsyncState as object;
/*
Process the socket operation
*/
}
SO ..
Когда операция сокета выполняется «асинхронно» Я знаю, что из различных источников, что буфер возлагали в памяти.
Однако я не знаю, где хранится «объект состояния»?
Почему? потому что мне интересно, что будет иметь эффект большого «объекта состояния»?
Taa!
Overlapped ??? что это перекрывается! спасибо больше информации, чтобы переварить :) – divinci
Если вы хотите узнать о том, что на самом деле происходит, получите копию Inside Windows Соломо/Руссинович. Если вы хотите использовать async IO, перейдите по статьям, связанным в http://rusanu.com/2008/11/11/high-performance-windows-programs/. Эти концепции применимы и к Managet .Net/C#. –
Спасибо Ремусу, £ 4.26, использованному на amazon :) – divinci