如何在dispatch_async iOS Swift 2.0中中断队列进程

时间:2016-02-02 09:57:26

标签: ios swift break dispatch-async

在我的简单代码中,如果条件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
    }
}

1 个答案:

答案 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 {
    ...
   }
}