-2
A
回答
1
dispatch_async -
提交一個塊異步執行的調度隊列並立即返回。 該函數是將塊提交給調度隊列的基本機制。調用此函數總是在塊被提交後立即返回,並且永遠不會等待塊被調用。
宣言: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。
1
使用這個異步塊的主要原因是有後臺任務。
dispatch_async:
通過使用該塊,你可以運行一個代碼塊異步
EG。
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);
欲瞭解更多信息和參數的詳細信息,敬請參閱: https://developer.apple.com/reference/dispatch/1452834-dispatch_async_f
相關問題
- 1. 主隊列上的performSelectorOnMainThread和dispatch_async有什麼區別?
- 2. dispatch_async在for語句中有什麼區別
- 3. 有什麼區別`和$(Bash中有什麼區別?
- 4. 有什麼區別? :和||
- 5. &&和||有什麼區別?
- 6. 「/」和「/ *」有什麼區別?
- 7. 有什麼區別:。!和:r!?
- 8. ==和===有什麼區別?
- 9. Appender和〜有什麼區別?
- 10. $ @和$ *有什麼區別?
- 11. is和=有什麼區別?
- 12. #.00和#。##有什麼區別?
- 13. `==`和`is`有什麼區別?
- 14. '=='和'==='有什麼區別?
- 15. /和/#/有什麼區別?
- 16. | 0和~~有什麼區別?
- 17. `&`和`ref`有什麼區別?
- 18. ==和===有什麼區別?
- 19. ==和===有什麼區別?
- 20. `{}`和`[]`有什麼區別?
- 21. JavaScript和=== ===有什麼區別?
- 22. difftime和' - '有什麼區別?
- 23. =和==有什麼區別?
- 24. 執行NSURLRequest和響應委託而不是使用dispatch_async有什麼區別?
- 25. xtype和別名有什麼區別?
- 26. Mixpanel:識別()和people.identify()有什麼區別?
- 27. 有什麼區別
- 28. 有什麼區別
- 29. 有什麼區別?
- 30. 有什麼區別?
看看文檔。 dispatch_async_f有一個附加參數。看看你能否從那裏弄清楚。 –