1
디스패치 그룹을 사용하여 두 개의 비동기 프로세스가 완료 될 때까지 대기하려고합니다. 그러나 두 번째 비동기 함수는 데이터베이스에있는 메시지의 양을 반복합니다.비동기 함수가 여러 번 실행되기 때문에 Dispatch 그룹이 충돌 함
두 번째 비동기 함수가 여러 번 실행되어 디스패치 휴가 수가 디스패치 수보다 많으므로 디스패치 수가 균형을 이루지 않아 아래 코드가 충돌합니다. 이 경우 디스패치 그룹을 구현하는 다른 방법이 있습니까?
dispatch_group_enter(dispatch_group)
ref.observeEventType(.ChildAdded, withBlock: {(snapshot) in
//execute once
dispatch_group_leave(self.dispatch_group)
}
dispatch_group_enter(dispatch_group)
ref.observeEventType(.ChildAdded, withBlock: {(snapshot) in
//execute 1000 times
dispatch_group_leave(self.dispatch_group)
}
dispatch_group_notify(self.dispatch_group, dispatch_get_main_queue()) {
print("done")
}
그래서 두 번째 블록 전체가 여러 번 실행됩니까? – Paulw11