最佳实践:NSURLConnection sendSynchronousRequest vs sendAsynchronousRequest

时间:2012-03-17 23:13:42

标签: objective-c nsurlconnection nsurlrequest

最好发送同步或异步请求吗?

我正在向服务器发送请求,要求提供文件列表,我希望用户可以选择。

3 个答案:

答案 0 :(得分:3)

同步请求会阻止应用程序执行任何用户操作,直到它完成,因为它在主线程中运行。

异步不会在其他线程中运行。

答案 1 :(得分:1)

您应始终使用异步请求,因为它们不会阻止调用它们的线程。相反,当连接失败或成功时,它们将调用您的委托方法。如果您需要阻止用户在连接运行时执行任何操作,请使用像MBProgressHUD这样的HUD类(检查github)。

答案 2 :(得分:0)

当你从主线程调用时,你想要使用异步调用。否则,整个用户界面将无响应(即:冻结),直到服务器响应。 (由主线程维护的用户界面)。

当您从另一个线程调用时,您希望使用同步调用,并且希望它在继续之前等待它有响应。如果您手动创建了一个线程,则从这个新线程调用异步将创建第三个线程。


异步意味着“调用主体”不会等到任务完成。

相关问题