使NSOperation的运行速度变慢,以减少CPU使用量

时间:2018-07-21 22:28:16

标签: nsoperation nsthread nslock

我的线程当前使用NSThread完成。就我而言,我有一个(非常大的)计算量,并且需要很长一段时间(例如5分钟)。这里的目标是仅使用大约2%的CPU。由于数据计算是线性的,并且我有一个NSLock信号灯,所以我使用以下代码:

//  block this task until time has elapsed or an exit signal is received.
if ([[self lock] lockWhenCondition:kConditionThreadMustExit beforeDate:[self blockUntil]])      
        [[self lock] unlock];

blockUntil方法查看经过了多少时间,完成了多少工作并相应地进行了阻塞。

我想将事情转移到NSOperation。

如何强制和NSOperation阻止/暂停一段时间,但是在需要时立即释放(例如,用户要取消操作)?

0 个答案:

没有答案