0
私の質問はどうですか?返信0の後にdispatch_group_notifyが機能していますか?dispatch_group_notify gcdの後にコードを実行する方法は?
以下のコードを実行すると、今すぐ0が返されますが、すべてのgcdの作業が完了したので、dispatch_group_notifyを終了します。
int func() {
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, queue,^{
});
dispatch_group_async(group, queue,^{
});
dispatch_group_notify(group, queue, ^{
});
return 0;
}
ここで、dispatch_group_notifyが完了するのを待つためにフラグを使用します。
dispatch_group_notify(group, queue, ^{
flag = true;
});
while(!flag) ;
return 0;
これは愚かです!誰でも私を助けることができます、ありがとう
void funMain(){int r = func(); printf( "%d"、r); }。この場合、rは無理なくすぐに表示され、dispatch_groupが完了するのを待ちません。 –