1

我试图做与往常相反的事情。我们有一个旧版 WinCE 应用程序,现在需要移植到 Win32 平台,以便它可以作为实际应用程序的模拟器工作。

我已经设法编译了代码,并且大多数事情都已经开始工作了。但问题是,该应用程序是多线程的。当应用程序在 WinCE 上时,所有线程同步工作,但是,在 Windows 上,它们之间绝对没有同步。

该应用程序正在串行端口上进行通信,但长时间无效不起作用。其他时候,接收线程挂起。有时根本不发送数据。有时线程一遍又一遍地多次发送数据。

知道 WinCE 和 Win32 中的多线程有什么区别吗?什么可能导致这种问题?

该应用程序是如此之大,以至于几乎不可能进行设计更改。关于我应该调查什么的任何建议?

4

1 回答 1

1

我发现了问题,所有线程都没有足够的时间来处理数据,这导致了大量的超时。我所要做的就是在数据被破坏的地方放一些锁,然后更改Sleep(0)Sleep(5). 这将 CPU 使用率从 95% 降低到仅 10%,并解决了所有问题。

于 2013-04-09T11:25:21.000 回答