2

dispatch_groupクラスプロパティがある場合:

@property (nonatomic, readonly) dispatch_group_t _serialGroup;

グループが完了するたびに常に呼び出したいブロックがあります。

dispatch_group_notify(self._serialGroup, self._serialQueue, ^{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //...do some stuff...
    });
});

dispatch_group_notify一度の初期化時に定義するだけで、dispatch_groupそのグループが完了するたびに呼び出されますか、それともアイテムをグループに追加するたびに再定義する必要がありますか?

4

2 に答える 2

4

ブロックは、API が呼び出された後にグループが最初に空になったときに (またはグループが既に空である場合はすぐに) dispatch_group_notify()、指定されたキューに 1 回だけ送信されます。

通知ブロックを再度呼び出したい場合は、それを再インストールする必要があります (たとえば、通知ブロック自体の一部としてですが、再インストール時にグループがまだ空の場合はすぐに再送信されることに注意してください)。

于 2013-05-11T02:30:56.990 に答える
0

dispatch_release() を呼び出して、自分で解放する必要があります。だからあなたはそれを保持して再利用することができます

于 2013-05-08T19:23:39.930 に答える