我不清楚 waitUntilDone 做了什么,但我发现了这个线程:
performSelectorOnMainThread中WaitUntilDOne的意义是什么?
这让我有点清楚,但是,如果我执行一些使 NSURLConnection(它是异步的)和 waitUntilDone 设置为 YES 的选择器,那么会发生什么?它会等待方法执行,但是方法实际上做了一些异步操作(即NSURLConnection),那有什么影响呢?
谢谢!
我不清楚 waitUntilDone 做了什么,但我发现了这个线程:
performSelectorOnMainThread中WaitUntilDOne的意义是什么?
这让我有点清楚,但是,如果我执行一些使 NSURLConnection(它是异步的)和 waitUntilDone 设置为 YES 的选择器,那么会发生什么?它会等待方法执行,但是方法实际上做了一些异步操作(即NSURLConnection),那有什么影响呢?
谢谢!
NSURLConnection 是异步的。您的代码在主线程上运行,并在下载过程中向您发出委托调用。您不需要也不应该从后台线程运行 NSURLConnection。
如果您确实有需要在后台线程上运行的代码,您可以使用 preformSelectorOnMainThread 方法将消息从您的工作线程发送到主线程。这样做的一个常见原因是您无法从后台线程更新 UI。您将调用一个方法来更新主线程上的 UI。
标志 waitUntilDone 控制 performSelectorOnMainThread 调用之后发生的事情。如果 waitUntilDone 为 false,您的后台线程将继续执行下一行,而无需等待主线程上的代码完成。
如果 waitUntilDone 为真,您的后台线程将阻塞,直到主线程完成执行您发送的选择器。