NSOperation 等待事件
NSOperation wait for event
我想自定义 class 来扩展 NSOperation,以便通过蓝牙与另一台设备成功通信。我的问题是如何实现 class 的主要方法,以便它等待蓝牙触发的事件?
我所做的只是暂时使用连续循环,直到某些事件触发 BOOL 以停止循环。我不知道这是否安全,但它确实有效。
while(!self.didFinish){
;
}
切勿使用无限循环。它不节能。正如@lead_the_zeppelin所说,使用semaphore/mutex/etc。例如,您可以像这样使用 dispatch_group
函数:
dispatch_group_t waitGroup = dispatch_group_create();
dispatch_group_enter(waitGroup);
dispatch_async(otherQueue, ^{
//long-running code
dispatch_group_leave(waitGroup);
}
dispatch_group_wait(waitGroup, DISPATCH_TIME_FOREVER);
我想自定义 class 来扩展 NSOperation,以便通过蓝牙与另一台设备成功通信。我的问题是如何实现 class 的主要方法,以便它等待蓝牙触发的事件?
我所做的只是暂时使用连续循环,直到某些事件触发 BOOL 以停止循环。我不知道这是否安全,但它确实有效。
while(!self.didFinish){
;
}
切勿使用无限循环。它不节能。正如@lead_the_zeppelin所说,使用semaphore/mutex/etc。例如,您可以像这样使用 dispatch_group
函数:
dispatch_group_t waitGroup = dispatch_group_create();
dispatch_group_enter(waitGroup);
dispatch_async(otherQueue, ^{
//long-running code
dispatch_group_leave(waitGroup);
}
dispatch_group_wait(waitGroup, DISPATCH_TIME_FOREVER);