GCD简解

dispatch_queue_t myQueue = dispatch_queue_create("com.ken.post",NULL);

第一个参数是队列标示,第二个参数是用来定义队列的参数。

而GCD是Grand Centeral Dispatch 的缩写,是多核编程的较新的解决方法。而它的声明如上所示。

执行时,首先传入之前创建的队列,然后提供由队列运行的代码块。代码如下:

dispatch_async(myQueue,^{[self doWhat]}); 
// 如不需保留要运行的队列的引用, 可以这样写
dispatch_async(dispatch_queue_create ("com.ken.post", NULL),^{[self doWhat];});

// 暂停一个队列:队列暂停时会阻止和该对列相关的所有代码的运行
dispatch_suspend(myQueue); // 暂停后要记得恢复
// 恢复队列,且此法在主线程不起作用。
dispatch_resume(myQueue);

// 如果必须在主线程进行时, 可以这样
dispatch_sync(dispatch_get_main_queue(),^{[self dismissLoginWindow];});


posted @ 2015-11-24 19:39  C小鱼言  阅读(171)  评论(0编辑  收藏  举报