我的 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/