2statistic
Да нет я не ругался
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
Просто у SerialPort есть реальный баг - при одновременной работе с несколькими открытыми портами возникают конфликты, поэтому забиваем на событие получение данных, создаем таймер в нем проверяем значение поля bytereceived, если не 0 читаем буфер. В итоге все нормально работает и нет необходимости создания делегата для извлечения данных из буфера SerialPort. Это все по собственному опыту.
2MiBBiM
При создании SerialPort он автоматически создает поток, в котором он читает и передает данные. Если много открытых портов возрастает вероятность одновременного использования некоторого объекта всеми объектами SerialPort -> всеми потоками, вот здесь и подводный камень, так просто данные из потока не извлекаются, и объкты в потоках если не Static (и не SingleTone) имеют локальные копии, следовательно либо:
1) Конфликт при обращении к разделяемым ресурсам
2) Неявное модифицирование некоторого объекта -> получения неожидаемого результата.
По опыту: конфликты могут проявиться и при 2 портах, особенно если данные одного нужно передать другому.