我正在使用Qt和QTcpSocket类来开发两个控制台应用程序,它们通过同一台计算机上localhost中的套接字相互通信。为了向后兼容,必须通过套接字完成此操作。
在执行过程中,第三个应用程序需要大量CPU,在几秒钟内其使用率会迅速提高到100%。我无法避免这种行为。在这种情况下,通信会出现延迟(即,从应用程序A发送的字符串会在数百毫秒后被应用程序B接收)。
很明显,套接字在特定线程中运行,我将线程的优先级设置为TimeCritical:
QThread::currentThread()->setPriority(QThread::TimeCriticalPriority);
您知道如何解决此问题吗? 谢谢
Here,您会看到一个简短的例子。一个简单的服务器和客户端相互通信。每次服务器发送新消息时,都会启动计时器。如果客户端在300ms之后回答,则会引发异常。 不幸的是,我无法与您共享第三个应用程序(该应用程序需要大量CPU,因为它是一个许可程序)。无论如何,我想如果所有处理器都可以饱和几秒钟,那么问题就应该出来了。