在我的应用程序中,我需要对一个相当大的数组进行排序,结果证明这是一个标准的任务,例如std::sort.
位于GUI应用程序中,我想对排序的进度给出某种响应.我的第一个尝试是弄清楚所需比较的大概数量(n*log2(n)for std::sort),然后简单地计算它们在传递给的比较函子中std::sort.这非常有效.
排序算法在单独的线程中执行以保持GUI响应.它使用Qt的信号或一些类似的线程安全机制将其进度传达给GUI.
但是,我也希望排序操作可以中断.也就是说,向用户提供按钮或类似的东西以中止整个操作.目前我只看到两个选项:
pthread_cancel等)考虑到线程取消而不是最后的手段并拒绝重写标准库算法,我抓住了狼的耳朵.
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |