代码之家  ›  专栏  ›  技术社区  ›  Jasarien

cfhost dns解析-什么时候可以使用同步API?

  •  1
  • Jasarien  · 技术社区  · 16 年前

    几个月前,我参加了iPhone开发者技术讲座,询问了那里的一位专家关于iPhone上缺少Nshast的问题。我移植到iPhone上的一些代码在其网络代码中大量使用了nshost。

    我听说Nshot在iphone上,但它是私人的。我还被告知nshost是一个同步API,无论如何我都不应该使用它。(如果有人能详细说明为什么不应该使用它,作为奖励,那就太好了。)

    我可以看到在主线程上使用同步API的注意事项,因为它们在完成之前都会被阻塞——这对于网络代码来说从来都不是一件好事,因为有太多的因素会导致API在相当长的时间内阻塞线程。

    我的解决方案是围绕cfhost的异步解析函数编写一个包装器。

    结果非常有效,我正在考虑将其发布到公共领域。

    但我的问题是:假设我的应用程序在连接阶段每次运行只解析一次主机名,然后在会话的其余部分缓存主机名。在解析过程中,会显示一个模式屏幕,告诉用户使用一个漂亮的微调器进行“连接”。

    解决方案是否异步真的很重要吗??用户必须等待连接,并且仅在第一个连接上完成解析。后续连接使用解析的缓存结果。

    什么时候可以同步,什么时候可以异步?

    1 回复  |  直到 16 年前
        1
  •  2
  •   yakovlev    16 年前

    你漂亮的旋转器不会旋转,因为在同步调用期间UI也会被阻塞。当然,您可以在一个单独的线程上进行调用,但是接下来您所做的基本上与异步调用相同。

    推荐文章