繁体   English   中英

NSURLConnection阻止主线程吗?

[英]Does NSURLConnection block the main thread?

我在iPhone应用程序中使用NSURLConnection ,并且在向我的NSURLConnection实例发送initWithRequest:后,界面似乎变慢了。 我不确定这是否正在发生,因为我的处理代码需要很长时间来处理响应,或者是因为NSURLConnection阻塞了主线程。

任何人都可以确认NSURLConnection将创建连接并在单独的线程上等待数据,然后在主线程上调用其委托方法吗?

谢谢!

NSURLConnection支持两种操作模式:异步和同步。 根本不使用单独的线程。 它们都只使用一个线程,即你运行它们的任何线程。

在同步模式下,NSURLConnection将阻止您运行它的任何线程。异步模式使用运行循环(从开发人员的角度来看)与后台线程类似,但开销较低且没有任何线程安全问题。 如果使用异步模式,则需要在主线程中运行它。 它不会阻止任何事情。

如果您的接口速度变慢,则与同步使用NSURLConnection不一致,这会导致您的接口完全停止,直到请求完成。

如果您在NSURLConnection上关注苹果示例,则调用将在与主线程不同的线程中处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM