我正试图做与往常相反的事情。我们有一个传统的WinCE应用程序,现在需要移植到Win32平台,以便它可以作为实际应用程序的模拟器。
我已经设法编译代码并且大部分内容已经开始工作了。但问题是,该应用程序是多线程的。当应用程序在WinCE上时,所有线程都同步工作,但是在Windows上,它们之间绝对没有同步。
应用程序正在通过串行端口进行通信,但很长一段时间无效无法正常工作。在其他时候,接收线程挂起。有时根本不发送数据。有时,线程会反复多次发送数据。
知道WinCE和Win32中的多线程有什么区别吗?什么可能导致这类问题?
应用程序非常庞大,几乎不可能进行设计更改。关于我应该研究什么的任何建议?
答案 0 :(得分:1)
我发现了问题,所有线程都没有足够的时间来处理数据,这导致了大量的超时。我所要做的就是,放置一些数据被破坏的锁,并将Sleep(0)
更改为Sleep(5)
。
这种CPU使用率降低了95%,仅为10%,并解决了所有问题。