Re[9]: Блокирующие сокеты
От: artgonch  
Дата: 03.08.04 11:10
Оценка:
Здравствуйте, Андрюха, Вы писали:

А>Здравствуйте, artgonch, Вы писали:


А>Я сделал так(хотя некоторые критикуют такой подход):


А>
А>DateTime    dtStopWaiting = DateTime.Now.AddMinutes(1);
А>while ((handler.Available == 0) && ( dtStopWaiting.CompareTo(DateTime.Now) >= 0 ) )
А>{
А>       Thread.Sleep(50);
А>}

А>int    bytesAvailable = handler.Available;
                
А>while (bytesAvailable > 0)
А>{
А>        byte[] bytes = new byte[1024];
А>        int bytesRec = handler.Receive(bytes);
А>        bytesAvailable -= bytesRec;
А>    data += Encoding.UTF8.GetString(bytes,0,bytesRec);
А>}
А>myLog.WriteEntry( String.Format("Received data: {0} , data), EventLogEntryType.Information);

А>


А что в нем неправильного? По-моему накладные расходы времени процессора минимальны. Но ведь насколько я понимаю, протокол TCP сам реализует систему таймаутов и проверок. Зачем же жедать это самому?
А какого типа объект myLog?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.