나는 FIFO 방식과 같이 GCD 대기열 순서로 데이터를 업로드하기를 원한다. 그렇게하는 방법 ?iphone에 그랜드 센트럴 디스패치 큐를 사용하여 데이터를 업로드 하시겠습니까?
답변
"업로드"블록이 무엇이든간에 GCD 직렬 대기열을 만든 다음 업로드 블록을 모두 dispatch_async해야합니다.
는 큐를 만들려면 : dispatch_queue_t myFifoQueue = dispatch_queue_create("com.example.myfifoqueue",DISPATCH_QUEUE_SERIAL);
을 당신이 지금 업로드 블록을 파견 할 수 큐를 생성했다면. 큐에서 이러한 블록 중 하나 파견 :
dispatch_async(myFifoQueue,myUploadBlock);
"dispatch_async는"당신의 블록이 직렬 큐에 추가됩니다 당신을 보장하지만, 현재의 thread (보통 메인 스레드)가 기다리지 않습니다를 완료하려면 블록하십시오. 직렬 대기열을 사용하면 모든 블록이 FIFO 순서로 실행됩니다.
예. 당신은 NSArray *myArray
을 가지고 있고 당신은 방법을 사용하여 배열 객체가 다음 이런 방식으로 코드를 작성할 수 있습니다 -(void)processObject:(id)object
를 호출 한 큐에 처리 할 경우 :
for(id object in myArray) {
dispatch_async(myFifoQueue,^{
[self processObject:object];
}
);
}
은 기본적으로 당신이 여기에서하면 모든 개체를 열거하는 것입니다 배열을 만들고 "processObject :"메서드를 호출하는 간단한 블록을 직렬 큐에 제출하십시오. processObject가 작업을 완료하는 데 걸리는 시간은 무엇이든 dispatch_async가 즉시 반환되며 직렬 대기열은 백그라운드 스레드에서 연속적으로 블록을 처리합니다. 모든 블록이 완료된 시점을 알 수있는 방법이 여기에 없으므로 큐의 끝에서 주 스레드에게 알리는 블록을 큐의 끝에 제출하는 것이 좋습니다 (즉, UI 업데이트 가능) :
dispatch_async(myFifoQueue,^{
dispatch_async(dispatch_get_main_queue(),
^{
[self endOfUpload];
});
});
- 1. 그랜드 센트럴 디스패치 코드 블록
- 2. 분산 객체 + 그랜드 센트럴 디스패치
- 3. omp_get_thread_num에 해당하는 그랜드 센트럴 디스패치
- 4. 핵심 데이터 및 그랜드 센트럴 디스패치?
- 5. 그랜드 센트럴 디스패치 (GCD) 및 비동기 API
- 6. 콜센터 방식의 IOS 그랜드 센트럴 디스패치
- 7. 듀얼 코어 iPad (A5) = 그랜드 센트럴 디스패치?
- 8. 그랜드 센트럴 파견을 선언하는 방법
- 9. 그랜드 센트럴 디스패치보기 전환
- 10. 그랜드 센트럴 디스패치 I/O 채널의 올바른 처분
- 11. 그랜드 센트럴 디스패치에서 파이썬 병렬 처리?
- 12. 블록 및 그랜드 센트럴 디스패치에 대한 질문
- 13. 코코아 게임이 그랜드 센트럴 디스패치를 피하여 타이머를 만드는 이유는 무엇입니까?
- 14. 메인 쓰레드에서 사용할 수 있도록 그랜드 센트럴 디스패치 _asych 블록에서 데이터 값을 다시 전달하려면 어떻게해야합니까?
- 15. 핵심 데이터 및 그랜드 센트럴 디스패치의 내부 모순
- 16. sqlite 파일을 프로비저닝 된 iPhone에 업로드 하시겠습니까?
- 17. Segue가 디스패치 큐를 완료 할 때까지 기다려야합니다.
- 18. 그랜드 센트럴 디스패치를 사용하여 무언가를 처리하는 동안 "진행"시트를 모달로 올바르게 표시하는 방법은 무엇입니까?
- 19. 그랜드 센트럴 디스패치를 사용하여 파일 영역 잠금을 효율적으로 구현하는 방법은 무엇입니까?
- 20. 디스패치 큐 일시 중단이 대상 큐를 일시 중단합니까?
- 21. 현재 실행중인 비동기 GCD 디스패치 큐를 확인하는 방법
- 22. iphone에 데이터를 로컬로 저장합니다.
- 23. UITableViewController를 사용하여 iPhone에 체크리스트를 구현 하시겠습니까?
- 24. 발송 방법을 사용하여 아이폰의 버튼 동작에 따라 데이터 업로드
- 25. jquery에서 DOM의 그랜드 자식 요소에 액세스 하시겠습니까?
- 26. Objective-C - 누출 프로필 작성 중 그랜드 센트럴 디스패치가 누출되었다고 표시합니다.
- 27. plist에서 데이터를 추출한 다음 영구적으로 tableview의 셀 iphone에 저장 하시겠습니까?
- 28. FTP 업로드 데이터를 Android에서 추적 하시겠습니까?
- 29. iPhone에 데이터를 저장하는 방법은 무엇입니까?
- 30. sdk3을 사용하여 파일을 업로드 하시겠습니까?
원하는 것을 더 잘 설명해야합니다. 일반적인 질문 ==> 일반적인 대답 – viggio24
나는 GCD의 새로운 사람이다 그래서 pls는 나를 도울 것이다 – Ben10
나는 나의보기를 명확하게했다. 그러나 나는 애플의 문서와 웹 튜토리얼을 읽으라고 제안한다. – viggio24