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];});