Я боролся с этим вопросом в течение дня, и я не могу найти ответ на него.Я пытаюсь прочитать данные с устройства GPS через COM-порт в Compact Framework C #.Я использую класс SerialPort (фактически мой собственный класс ComPort, упаковывающий SerialPort, но он добавляет только два поля, которые мне нужны, ничего особенного).
В любом случае, я запускаю цикл while в отдельном потоке, который читает строки из порта, анализирует данные NMEA, распечатывает их, перехватывает все исключения и затем спит (200) в потоке, потому что мне нужен ЦП для другогопотоки ... Без Sleep он работает нормально, но использует 100% CPU .. Когда я не использую Sleep через несколько минут, выход из COM-порта выглядит следующим образом:
GPGSA, A, 3, 09,12,22,17,15,27 ,,,,,,, 2.6,1.6,2.1 * 3F
GSA, A, 3,09,12,22,17,15,27 ,,,,,,, 2.6,1.6,2.1 * 3F
A, A, 3,09,12,22,17,15,27 ,,,,,,, 2.6,1.6,2.1 * 3F
, 18,12,271,24,24,05,020,24,14,04,326,25,11,03,023, * 76
A, 3,09,12,22,17,15,27 ,,,,,,, 2.6,1.6, 2,1 * 3F
3,09,12,22,17,15,27 ,,,,,,, 2.6,1.6,2.1 * 3F
09,12,22,17,15,27 ,,,,,,, 2.6,1.6,2.1 * 3F
, 12,22,17,15,27 ,,,,,,, 2.6,1.6,2.1 * 3F
В этой функции есть еще кое-что, например, переподключение, еслиустройство потеряно и т. д., но оно не вызывается при правильном подключении GPS.Я пытался
У кого-нибудь была подобная проблема?Я действительно не знаю, что я делаю неправильно. Единственный способ получить это - удалить последний сон.