我正在使用串行队列来进行视频处理的后台线程(块)。我想更新UI组件(特别是进度条)。我发现虽然我可以与UI进行交互,但我的进度条没有通过调用setProgress(从块中调用)进行更新,直到线程完成。
dispatch_queue_t dispatch_queue = dispatch_queue_create("somequeue", NULL);
[somebody doSomethingOnQueue:dispatch_queue usingBlock:^{
progressBar.progress = someFloat; //does not update
}];
答案 0 :(得分:9)
您应该更新主调度队列上的UI:
[somebody doSomethingOnQueue:dispatch_queue usingBlock:^{
…
dispatch_async(dispatch_get_main_queue(), ^{
progressBar.progress = someFloat;
});
}];
答案 1 :(得分:2)