繁体   English   中英

如何在GCD队列中获取任务列表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM