dispatch_get_main_queue 的同步異步問題


 dispatch_sync(dispatch_get_main_queue(), ^(){

        NSLog(@"222");

    });

在ios中是無法使用 dispatch_sync(dispatch_get_main_queue()

原因如下:

在ios使用 dispatch_sync(dispatch_get_main_queue()^(){block體});

dispath向主隊列加一個同步的block;

 

此時主隊列在等待    dispatch_sync(dispatch_get_main_queue()^(){block體});執行

dispatch_sync在等待主隊列執行完畢。

造成死鎖。

 

所以在ios使用主隊列 dispatch_get_main_queue() 時 應該使用異步執行

dispatch_async(dispatch_get_main_queue(), ^(){

        NSLog(@"222");

    });

原文鏈接:http://www.software8.co/caozuoxt/ios/3512.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM