我有一个在后台线程中执行的代码,它正在执行某种计算并且在一个 do-while 循环中。由于需求的一些变化,我必须显示一个 UI 来提示用户输入。这段UI代码要在主线程中完成,输入提示后,逻辑需要继续。在主线程上使用 dispatch_async,我可以显示 UI,但步骤 -2 不应该继续,直到 UI 完成。在不破坏代码流并将单元移动到块中的情况下,实现此目的的最佳方法是什么?
例如:
-(void) compute
{
    do 
    {
        //calculate some data
        // Step -1...
        ...
        // Step -2
         ...
         ...
     } while(flag)
}
在步骤 1 和步骤 2 之间,我想显示一个提示。最好的方法是什么?可以在 UI 完成后由主线程使用互斥锁来阻止这个后台线程吗?