Цитата Сообщение от SSV_VGTA Посмотреть сообщение
Пишу диплом в Builder C++ 6.0, разработка ПО для управления многосвязным объектом, включая синтез математической модели и синтез управляющей части.При этом используются приборы ОВЕН: МВА8, МВУ8, АС3, ТРМ151.
Возникает проблема: при опросе в одном цикле нескольких каналов одного прибора МВА программа подвисает(она должна в реальном времени рисовать графику на OpenGL). Подскажите пожалуйста как сделать более грамотно многопоточное чтение, чтобы например каждый канал читался отдельным потоком и манипулировал прочитанными данными. При попытке открвать порт (один и тоже) в каждом потоке - ошибка "Порт занят". Попытка выбрать порт (SelectPort(...) ) также неудачна. Можно ли одновременно читать разными потоками с одного СОМ порта функциями, определенными в dll??? Можете написать на s_sergey@mail.ru
А зачем читать разные каналы в разных потоках? Чтобы было? Или задание - сделать программу с 1000 потоков?
Других причин так извращаться не вижу. В 1 потоке откройте порт и по очереди опрашивайте нужные Вам каналы, приборы, параметры. Конфликтов не будет.