2013-06-19 51 views
1

我從幾個後臺線程呼叫dispatch_async(dispatch_get_main_queue()。但是,偶爾會發現調度塊中的代碼未執行。這可能是因爲我異步調度和線程退出主隊列可以執行代碼之前?未收到隨機主隊列發送

回答

1

你有沒有嘗試過在你的代碼片段的開頭放置一個NSLog以確保它沒有執行?有時候,具有錯誤邏輯的if語句會預先終止您的代碼。 (來自我過去的經驗;))

1

dispatch_async()調用返回的那一刻,調用它的線程是否隨後退出並不重要 - 可以這麼說「請求在系統中」!那些「偶然」的情況正在發生。你的程序是否有一個運行循環或者在其主函數結尾處調用dispatch_main()?不清楚這是否是您描述的Cocoa/iOS/POSIX應用程序。