Здравствуйте, Андрюха, Вы писали:
А>Здравствуйте, 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?