iphone - 如何确定当前运行的异步 GCD 调度队列

标签 iphone ios ios4 grand-central-dispatch

我的 iOS 应用程序上有一个刷新按钮,用于在 GCD 中启动异步调度队列。队列的名称是自定义的。可能会出现用户猛击按钮并导致创建大量不必要的队列的问题。我希望检查是否有一个特定名称的队列处于事件状态,这样我就无法启动另一个队列或添加到具有相同名称的同一队列。

这可能吗?

最佳答案

我认为您不应该为每个请求都创建新队列。由于您似乎并不担心它们在您创建新队列来执行每个 block 时是连续的,因此我建议您使用全局队列来运行您的 block 。这两个操作是同义词,因为它们是您生成的调度队列的最终目标队列。获取队列很简单,应该替换您创建自己队列的代码。

dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

如果您希望它们按顺序运行,您应该将自己的队列定义为一个实例变量,以便您只创建一次并在每次需要分派(dispatch) block 时使用相同的队列。

关于iphone - 如何确定当前运行的异步 GCD 调度队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6327284/

相关文章:

iphone - MonoTouch.Dialog:iPad无法获得背景图像集

ios - Swift:如何在 ScrollView 中向上滚动时缩放图像

ios - SWRevealViewController插入对象:atIndex object cannot be nil

objective-c - Objective C 如何解决 NSCoreDataOptimisticLockingException

ios - 使用横向时 UIWindow 的大小错误

iphone - NSMutableURLRequest 的 addValue 不起作用?

iphone - 未激活的测试手机?

iphone - 以编程方式更改所需的背景模式

ios - 创建控件

ios - 在安装新版本的应用程序时升级现有应用程序中的CoreData