2012-02-08 2 views
1

나는 GCD에서 찾은 꽤 괜찮은 투구를 사용하고 있습니다. 새로운 디스패치 대기열을 선언하는 방법을 보여줍니다.그랜드 센트럴 파견을 선언하는 방법

그랜드 센트럴 디스패치는 대기열을 사용하여 작동합니다. 대기열은 C 유형 정의 : dispatch_queue_t입니다. 새로운 글로벌 대기열을 얻으려면 의 long과 옵션의 unsigned long (사용하지 않는) 두 개의 인수를 취하는 dispatch_get_global_queue()를 호출합니다. 따라서 은 0ul를 전달합니다. 에서

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 

임 희망 누군가가 무엇 0ul 나에게 설명 할 수 있도록 같은 매개 변수로는 0ul 통과 말한다 그것에서

: 여기 우리가 우선 순위가 높은 큐를 얻는 방법은? 그 이유는 무엇입니까?

답변

4

그것은 단지 0이며 ul은 함수 서명과 일치시키기 위해 서명되지 않은 long이되도록 컴파일러에 알리고 있습니다.

dispatch_queue_t dispatch_get_global_queue (긴 우선 순위, 부호없는 긴 플래그);

ul을 추가하지 않으면 0이 정수로 취급되어 컴파일러 경고가 발생할 수 있습니다.

여기에서 설명서를 확인하십시오.

https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html

+0

아 오른쪽 .. 큐에있을 것입니다 개체를 (더 나은 단어의 부족에 대한) 마커를 설정 이잖아 그래서 데이터 형식 함께 할 아무것도하지 않는 그 I 멀티 스레드 싶어요? –

+0

아무런 효과가 없습니다. 문서를 보면 사용하지 않는 매개 변수이므로 0입니다. – Gary

+0

답장을 보내 주셔서 감사합니다.이 기능이 더 복잡해 졌다고 느낍니다. (멀티 스레딩) 그러나 그것의! 그래서 이상한! –

관련 문제