[英]How to get the tasks list in GCD queue?
我在GCD中获得主队列,如下所示,我在我的应用程序中添加了不同类的不同任务。
dispatch_queue_t queue = dispatch_get_global_queue (
DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
现在我想知道我的任务中有多少仍在GCD主队列中。
有没有任何方法可以在GCD队列中获取任务列表?
谢谢
这真的不是GCD的范例。 例如,如果要跟踪某组操作,可以创建一个调度组并注册以在完成后收到通知,如本例所示。
dispatch_group_t taskGroup = dispatch_group_create();
dispatch_queue_t queue = //Get whatever queue you want here
dispatch_group_async(taskGroup, queue, ^ {
[object doSomething];
});
dispatch_group_async(taskGroup, queue, ^ {
[object doMoreStuff];
});
dispatch_group_async(taskGroup, queue, ^ {
[object doEvenMoreStuff];
});
dispatch_group_notify(taskGroup, queue, ^{
[object workDone];
});
dispatch_release(taskGroup);
通常,这是通过调度组而不是队列来完成的。 您可以使用dispatch_group_async()
将任务分配给组,也可以使用dispatch_group_enter()
和dispatch_group_leave()
手动标记组中的内容。 然后,您可以使用dispatch_group_notify()
或dispatch_group_wait()
检查组中是否有任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.