Почему именно так?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Создатель
Постоялец
Постоялец
 
Сообщения: 422
Зарегистрирован: 21.04.2004 (Ср) 3:32
Откуда: Новосибирск

Почему именно так?

Сообщение Создатель » 13.03.2005 (Вс) 19:30

Есть код:
Код: Выделить всё
....
         
writer = New BinaryWriter(output)
reader = New BinaryReader(output)

do while true

message = reader.ReadString
некое событие
end while


так вот, почему событие будет происходить только тогда, когда клиент получает строку...Почему не постоянно(цикл то бесконечный)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.03.2005 (Вс) 20:01

Думаю, потому, что метод ReadString ждёт прихода строки, а не возвращается немедленно.
Изображение

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 13.03.2005 (Вс) 20:15

Цикл то у тебя бесконечный, только ты используешь синхронную операцию ( message = reader.ReadString ).

Попробуй асинхронную операцию
message=reader.BaseStream.BeginRead()

Создатель
Постоялец
Постоялец
 
Сообщения: 422
Зарегистрирован: 21.04.2004 (Ср) 3:32
Откуда: Новосибирск

Сообщение Создатель » 13.03.2005 (Вс) 20:27

OK! Догнал..Спасибо


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70

    TopList