Тема: Поясніть за шаблони асинхронного програмування.
Здорів. Ну от я знаю, існує три шаблона. Це шаблон з використанням колбеків, з використанням подій, і з використанням якихось тасків. http://msdn.microsoft.com/ru-ru/library/jj152938.aspx Досі я використовував лише колбеки, тому що там все зрозуміло і прозоро. Перший метод запускає якийсь процес і працює в окремому потоці, а по закінченню роботи викликається інший метод, в котрий передається результат або будь-яка потрібна інформація. Ну тобто мона створити якийсь класс, позапихувати в нього купу інформації, при запуску асинхронного метода запихнути в нього той класс, а після закінчення роботи, викликається інший метод, в котрому ми отримуємо той самий класс і можемо робити з ним все, що захочемо. Оооот. А з подіями і тасками я нічо не зрозумів. Можете пояснити за ці два шаблона, на прикладі отримання інфи по сокету. Ну якщо це колбеки, то буде
Socket.BeginReceive(buffer,
0, buffer.Length, SocketFlags.None,
new AsyncCallback(ReceiveCallback),
data); // тут data - це якісь дані, включаючи сам сокет, а ReceiveCallback - метод, котрий викликається по закінченню виконання асинхронного метода.
private void ReceiveCallback(IAsyncResult result)
{
Data data =
(Data)result.AsyncState; //отримуємо дані
int bytesRead =
data.Socket.EndReceive(result); // отримуємо кількість прочитаних байт
}
А ви поясніть, як це буде виглядати, якщо використовувати події або таски. Дякую :3