[an error occurred while processing this directive]
|
COMTimeOuts.ReadIntervalTimeout = 209; - максимальный интервал между байтами
COMTimeOuts.ReadTotalTimeoutConstant = 209; - постоянная прибавка времени ожидания
COMTimeOuts.ReadTotalTimeoutMultiplier = 100; - добавка времени на прием каждого байта.
Работает Read так: после вызова ждет появления первого байта в буфере. Если поток пошел, смотрит, чтобы разрыв меджду байтами не был больше ReadIntervalTimeout, иначе считает, что посылка закончена и возвращается. Общее время приема на должно быть больше чем = ReadTotalTimeoutConstant + ReadTotalTimeoutMultiplier*N, где N - число заказанных байт. Если поток прет и больше чем N - все равно возращется. Это сделано, чтобы не зависнуть на приеме.