0

我不清楚 waitUntilDone 做了什么,但我发现了这个线程:

performSelectorOnMainThread中WaitUntilDOne的意义是什么?

这让我有点清楚,但是,如果我执行一些使 NSURLConnection(它是异步的)和 waitUntilDone 设置为 YES 的选择器,那么会发生什么?它会等待方法执行,但是方法实际上做了一些异步操作(即NSURLConnection),那有什么影响呢?

谢谢!

4

1 回答 1

0

NSURLConnection 是异步的。您的代码在主线程上运行,并在下载过程中向您发出委托调用。您不需要也不应该从后台线程运行 NSURLConnection。

如果您确实有需要在后台线程上运行的代码,您可以使用 preformSelectorOnMainThread 方法将消息从您的工作线程发送到主线程。这样做的一个常见原因是您无法从后台线程更新 UI。您将调用一个方法来更新主线程上的 UI。

标志 waitUntilDone 控制 performSelectorOnMainThread 调用之后发生的事情。如果 waitUntilDone 为 false,您的后台线程将继续执行下一行,而无需等待主线程上的代码完成。

如果 waitUntilDone 为真,您的后台线程将阻塞,直到主线程完成执行您发送的选择器。

于 2012-09-10T01:34:44.900 回答