使用dispatch_get_main_queue()时减少主线程的负载

时间:2011-09-05 06:12:35

标签: iphone grand-central-dispatch

我在使用GCD的iPhone应用程序中生成了很多缩略图。我有一些看起来像这样的东西:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // generate thumbnail

    // store thumbnail

    dispatch_async(dispatch_get_main_queue(), ^{
        // display thumbnail (cellForRowAtIndexPath and cell.imageView.image = ..
    });
);

它工作得很好,但我想降低显示块的优先级,以便有一个响应更快的UI线程。

1 个答案:

答案 0 :(得分:0)

主队列(与主线程关联)没有优先级。你不能改变它的优先权。

无论如何,您可以使用NSNotification发布方式发布NSPostWhenIdle。这将允许您的代码仅在您的应用程序有空闲时间时执行。有关此类技术,请参阅here in the documentation / dedicated Programming Guide