Я хочу измерить время, затраченное на то, чтобы клиент получал данные по tcp с помощью C#.Как измерить время, затраченное на C# NetworkStream.Read?
Im using NetworkStream.Read читать 100 мегабит данных, которые отправляются с использованием NetworkStream.Write. Я устанавливаю буфер на один и тот же размер данных, поэтому нет проблемы с переполнением буфера и т. Д. Обычно это выглядит так.
Stopwatch sw = new Stopwatch();
sw.Start();
stream.Read(bytes, 0, bytes.Length);
sw.Stop();
Проблема заключается в том, существует вероятность того, когда отправитель hasnt фактически отправил данные, но секундомер уже запущен. как я могу точно измерить время, затрачиваемое на получение данных? я попытался использовать временную задержку удаленного потока pc.Write, но время, которое потребовалось, чтобы написать, крайне мало. Кстати, секундомер - самый точный инструмент для этой задачи?
Угадайте вы намеревались написать 'в то время как Thread.Sleep (100) (stream.DataAvailable!);' – jgauffin
@jguaffin, да вот намерение. Ответ отредактирован для put ';' после while do {} while. – VinayC