在我的简单代码中,如果条件x == 2并且转到主队列,我希望在队列全局中打破进程。
如何处理?
Dario Basso Cardoso
var x = 1
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0)) {
x++
if x == 2 {
break // error in this part or
return // does not work well
}
// more codes...
dispatch_async(dispatch_get_main_queue()) { () -> Void in
// execute the main code
// with break or not
if x == 2 {
// verified that break
}
// next codes
}
}
答案 0 :(得分:0)
无需显式退出您的进程,一旦程序到达异步进程结束,它将自行退出。
你需要反过来考虑它。只要有计算的东西,就让这个过程继续进行,然后让它耗尽
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0)) {
while x < 2 {
x++
}
dispatch_async(dispatch_get_main_queue()) { () -> Void in {
...
}
}