c - 将多线程window ce app移植到win32

标签 c multithreading winapi mfc windows-ce

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

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

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

知道 WinCE 和 Win32 中的多线程有什么区别吗?是什么导致了此类问题?

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

最佳答案

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

关于c - 将多线程window ce app移植到win32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15872001/

相关文章:

Java 并发 - 内联初始化的非最终字段和安全发布

windows - 如何停止资源管理器启动我的应用程序最大化?

perl - 如何在不遵循连接点的情况下删除 Windows 目录?

c++ - 以相反的顺序添加选项卡?

c - 在两个字节上写入 uint8 变量?

objective-c - 以一种奇怪的方式变成 0 的整数

c++ - 在嵌入式系统中使用 xml 作为数据库有什么好处?

java - volatile 关键字有什么用?

python - 有没有办法将参数传递给 optuna 中的多个工作?

c++ - WinAPI C++ : Reprogramming Window Resize