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