powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что за способ синхронного чтения потока?
5 сообщений из 5, страница 1 из 1
Что за способ синхронного чтения потока?
    #38912756
WinterGraveyard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разбирал ня днях декомпилированный проект (автор - стороняя организация), и наткнулся там на такой способ синхронного записи/чтения потока (NetworkStream, полученный от TcpClient):
Код: c#
1.
_workingStream.EndWrite(_workingStream.BeginWrite(buffer, 0, buffer.Length, null, null));


или
Код: c#
1.
_workingStream.EndRead(_workingStream.BeginRead(buffer, 0, buffer.Length, null, null));


Есть ли в этом какой-то особый смысл? Почему именно так, а не обычные синхронные Read/Write?
(у автора проекта это узнать не получится - он неизвестен)
Сомневаюсь, что это артефакт декомпиляции: JustDecompile, dotPeek, и ILSpy - все выдали вышеприведенное.
...
Рейтинг: 0 / 0
Что за способ синхронного чтения потока?
    #38913040
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinterGraveyard,

налицо шаблон Asynchronous Programming Model: пара методов Begin*/End*.
Наверняка, это оптимизация, выполненная компилятором. В оригинале код выглядел примерно так:
Код: c#
1.
2.
3.
IAsyncResult iar = _workingStream.BeginWrite(buffer, 0, buffer.Length, null, null)
...
_workingStream.EndWrite(iar);


А компилятор всё объединил.
...
Рейтинг: 0 / 0
Что за способ синхронного чтения потока?
    #38913348
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinterGraveyard,
С точки зрения программиста практически нет разницы, будет потрачено больше времени на создание дополнительного потока, запускающий поток так же будет ожидать исполнения, как и при синхронном вызове.
С точки зрения исполнения системой, будет исполнен немного другой код.
...
Рейтинг: 0 / 0
Что за способ синхронного чтения потока?
    #38913518
WinterGraveyard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, понятно. Получается, если я всё это перепишу на обычные синхронные Read/Write, ничего страшного не случится?
...
Рейтинг: 0 / 0
Что за способ синхронного чтения потока?
    #38913535
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinterGraveyardСпасибо, понятно. Получается, если я всё это перепишу на обычные синхронные Read/Write, ничего страшного не случится?
Одна из главнейших заповедей программиста - не трогай то, что работает :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что за способ синхронного чтения потока?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]