0

我不清楚是什麼waitUntilDone做的,但我發現這個線程:performSelectorOnMainThread和waitUntilDone,爲NSURLConnection的

What is the significance of WaitUntilDOne in performSelectorOnMainThread?

這讓我有點清楚,但是,如果我進行一些選擇,這使得NSURLConnection(這是異步的)和waitUntilDone設置爲YES,那麼會發生什麼?它會等待該方法執行,但該方法實際上會執行一些異步操作(即NSURLConnection),那麼影響是什麼?

謝謝!

回答

0

NSURLConnection是異步的。您的代碼在主線程上運行,隨着下載過程的進行,代理服務器會對您進行調用。您不需要,也不應該從後臺線程運行NSURLConnection。

如果您的代碼需要在後臺線程上運行,則可以使用preformSelectorOnMainThread方法將消息從工作線程發送到主線程。這樣做的一個常見原因是您無法從後臺線程更新UI。你會調用一個方法來更新主線程上的UI。

標誌waitUntilDone控制performSelectorOnMainThread調用後發生的情況。如果waitUntilDone爲false,則後臺線程將繼續執行下一行,而不等待主線程上的代碼完成。

如果waitUntilDone爲true,則後臺線程將阻塞,直到主線程完成執行發送的選擇器。

相關問題