Я использую классы Qt и QTcpSocket для разработки двух консольных приложений, взаимодействующих друг с другом через сокет в localhost на одном компьютере. Это должно быть сделано через сокет для обратной совместимости.
Во время выполнения третьему приложению требуется много ресурсов ЦП, использование которого быстро достигает 100% в течение нескольких секунд. Я не могу избежать этого поведения. В этой ситуации связь получает задержку (то есть строка, отправленная из приложения A, принимается приложением B много сотен мс позже).
Очевидно, что сокет работает в определенном потоке, и я установил приоритет потока в TimeCritical:
QThread::currentThread()->setPriority(QThread::TimeCriticalPriority);
Знаете ли вы, как решить эту проблему?
Спасибо
Здесь у вас есть краткий пример того, что происходит. Простой сервер и клиент общаются друг с другом. Каждый раз, когда сервер отправляет новое сообщение, запускается истекший таймер. Если клиент отвечает позже, чем через 300 мс, возникает исключение.
К сожалению, я не могу поделиться с вами третьим приложением (которое требует много ресурсов процессора, так как это лицензионная программа). В любом случае, я полагаю, что если вы сможете за несколько секунд насытить все процессоры, проблема должна появиться.