【发布时间】:2010-11-09 13:25:30
【问题描述】:
我正在开发一个 C/C++ 项目,该项目涉及一个 UI 和一个后台服务,该服务通过网络获取数据来执行一些繁重的处理。为了使我的 UI 不会变得无响应,我想生成一个单独的线程,然后在该线程中调用后台服务,而另一个线程将在 UI 中显示忙碌指示。一旦后台服务完成它的工作,我想将线程上下文从后台线程切换到 UI 线程,以便删除繁忙指示并显示更多屏幕流。 我相信这是大多数 UI 工作的常用方式。我想知道的是实现这一目标的有效和最佳方法是什么。现在我没有为上述实现代码,我只是在寻求想法和最好的方法。
平台是 Linux。 我使用的 UI 框架是一个自定义 UI 框架,它为 UI 开发提供 SDK,但与大多数 UI 框架不同,它不会为我提到的场景提供任何内容。它几乎是不推荐使用的框架,但需要用于这个项目,这很痛苦,所以唯一的选择是我可以使用 Pthread 或 System v 以及一些实际调用的包装器,这将帮助我保持实现在不同平台上的可移植性。
由于嵌入式环境的某些限制,我无法使用 Boost Threads。
任何关于上下文切换如何发生的建议和解释都会很有帮助。
【问题讨论】:
标签: c++ c multithreading pthreads