将多线程窗口应用程序移植到win32

时间:2013-04-08 05:41:49

标签: c multithreading winapi mfc windows-ce

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

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

应用程序正在通过串行端口进行通信,但很长一段时间无效无法正常工作。在其他时候,接收线程挂起。有时根本不发送数据。有时,线程会反复多次发送数据。

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

应用程序非常庞大,几乎不可能进行设计更改。关于我应该研究什么的任何建议?

1 个答案:

答案 0 :(得分:1)

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