답변
-
가 디스패치 큐에 비동기 실행을 위해 블록을 송신 해 즉시 반환합니다. 이 기능은 블록을 디스패치 대기열에 제출하는 기본 메커니즘입니다. 이 함수에 대한 호출은 블록이 제출 된 직후에 항상 반환되고 블록이 호출되기를 기다리지 않습니다.
선언 : void dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
에 Params : 큐 - 블록이 NULL이 될 수 없습니다 &를 제출하여야하는 큐. 블록 - 대상 큐에 제출할 블록 &은 NULL 일 수 없습니다.
는 dispatch_async_f -
&는 즉시 반환 디스패치 큐 비동기 실행하는 애플리케이션 정의 블록을 제출한다. 이 함수는 응용 프로그램 정의 함수를 디스패치 대기열에 전송하는 기본 메커니즘입니다. 이 함수에 대한 호출은 함수가 제출 된 직후에 항상 리턴되며 호출 될 때까지 기다리지 않습니다.
선언 : void dispatch_async_f(dispatch_queue_t queue, void *context, dispatch_function_t work);
에 Params : 큐 - 블록이 NULL이 될 수 없습니다 &를 제출하여야하는 큐. 작업 - 대상 디스패치 대기열 7에서 호출 할 응용 프로그램 정의 함수를 NULL로 설정할 수 없습니다.
이 비동기 블록을 사용하는 주된 이유는 백그라운드 작업을 갖는 것입니다.
dispatch_async : 당신은 코드 블록 비동기
예를 실행할 수 있습니다
이 블록을 사용하여.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
//Background Thread
dispatch_async(dispatch_get_main_queue(), ^(void){
//Run UI Updates can be done only on main thread
});
});
dispatch_async_f :
에 관계없이 비동기 작업에서 블록의 당신은 백그라운드에서 수행하는 사용자 정의 기능을 넣을 수 있습니다.
예 : 자세한 정보 및 매개 변수에 대한 자세한 내용은
void mainFunc(void) {} // your function
void callingFuncForAsyncTask(void*) { mainFunc(); } // new function which takes arguments for calling inside async_f
dispatch_async_f(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), 0, &callingFuncForAsyncTask);
친절 참조 : dispatch_async https://developer.apple.com/reference/dispatch/1452834-dispatch_async_f
문서를 살펴보십시오. dispatch_async_f에는 추가 매개 변수가 있습니다. 거기에서 알아낼 수 있는지 확인하십시오. –