问题描述
我正在 OpenCASCADE 中寻找可以为我提供等待图标或进度条的 API,以帮助我减少创建或打开对象的时间延迟
解决方法
OCCT 不是 GUI 框架或应用程序 - 它没有实现任何等待光标或类似的东西。
应用程序预计:
- 在后台线程中执行长时间操作以防止 GUI 线程冻结。线程创建、与 GUI 线程的互操作、围绕修改结构的适当互斥锁以避免数据竞争 - 由应用程序代码负责。尽管您可能会使用 OCCT 的
OSD_Thread
/Standard_Mutex
/Standard_Condition
工具。 - 在 GUI 中向用户显示长时间操作(如等待光标)的指示,并在后台操作完成之前防止意外的用户输入(锁定输入按钮等)。这是 GUI 框架特有的。
- 尽可能使用所需的 GUI 控件来实现
Message_ProgressIndicator
界面(作为等待光标的替代方法)并且有意义。这也非常特定于 GUI 框架和目标平台(例如,Windows 提供了一个专用 API,用于直接在任务栏上显示进度指示)。
GUI 线程中的长计算是危险的,但是如果应用程序是否会向用户显示等待图标。这样的应用程序可能被认为是挂起的——在 Windows 上点击这样的窗口会建议用户杀死挂起的应用程序或多等一会儿,Android 可能会更快地杀死应用程序。这不是特定于 OCCT 的内容,而是一般性指南。
在 this post 中,您还可以查看 OCCT 中 Message_ProgressIndicator
API 的说明。该 API 由许多 OCCT 算法公开,但也可由应用程序算法使用。