c++ - WinCE6.0或DMA实现中的多重处理

标签 c++ window windows-ce

在我的应用程序中,我想并行执行任务,就像一个线程将执行计算,而另一个线程将在屏幕上绘制数据,但是在绘制数据处理器时,数据处理器正在使用,在此期间它无法处理不同线程的数据。我在高于正常优先级的情况下运行两个线程。有什么方法可以并行绘图,以便测量线程可以在不受绘图线程影响的情况下以该速度进行计算。我从一些人那里听说 DMA 可以解决这个问题,但是我不知道如何在 WINCE6.0 平台上实现它。

请提供任何指针

穆克什

最佳答案

不知道 DMA 如何“解决”这个问题 - 您使用的是单个处理器内核,它一次只能执行一组指令。 DMA 不会改变这一点。

您遇到的问题听起来好像您正在以几乎满负荷使用处理器,因此您没有看到线程之间有太多时间共享。通常有两种方法可以解决这个问题。

1) adjust the priority更重要的线程,让它从调度程序中获得更多时间来完成它的工作。

2) adjust the thread quantum让您的线程强制调度程序更频繁地在线程之间交换。

关于c++ - WinCE6.0或DMA实现中的多重处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618816/

相关文章:

c++ - STL priority_queue 的效率

c++ - 静态 C++ 映射初始化错误 C2552 : non-aggregates cannot be initialized with initializer list

c++ - 使用 RcppArmadillo 在矩阵列上应用函数可以工作,但在行上应用时会返回错误

c# - Windows CE 在窗体顶部显示不存在的面板

c++ - ARM WINCE应用,反黑客解决方案

c++ - 每当表达式未定义时,在 C++ 中启用函数模板

python - 使用 python 3.6 在 Windows 10 中安装 imutils

c++ - 重定向子进程的输出

objective-c - 单击窗口禁用应用程序激活

c++ - void 指针算术错误