gpt4 book ai didi

objective-c - 你什么时候想在辅助线程上运行 NSURLConnection ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:21 26 4
gpt4 key购买 nike

我们正在编写一个大量使用 NSURLConnection 的 SDK。要管理所有这些连接(例如,批量取消它们),最好是它们都在单个线程(最好是主线程)上运行。由于 NSURLConnection 的异步特性,这不是一个糟糕的想法 - 在我们的独立应用程序中,我们所有的连接都在主线程上运行,并且在连接之后在辅助线程(实际上,使用 GCD 或操作队列)上执行繁重的工作获得结果,没有任何停顿。

所以问题是 - 在哪些情况下用户希望在多个线程上运行连接,以及在不是主线程的线程上运行连接?

编辑:我想我没有正确解释自己。我们以异步而非同步方式使用 NSURLConnection。这允许我们在主线程上运行所有连接而不会阻塞 UI。问题是:我们 SDK 的用户何时希望在不同的线程上异步运行这些连接?

最佳答案

我可以想象在另一个线程上运行异步 NSURLConnection 的唯一充分理由是,如果您的委托(delegate)方法本身非常耗时。即便如此,我可能仍会在主线程上运行它,并将处理移至后台队列。

编辑:请注意,今天“将处理移至后台线程”非常容易。在 GCD 之前,这有点困难,因此在辅助线程上运行 NSURLConnection 本身在这种情况下可能更有用。当您将 NSURLConnection 嵌入到不在主线程上处理运行循环的 C++ 应用程序时,它仍然有些用处(这基本上仅适用于 Mac 应用程序)。

我相信你明白,NSURLConnection 已经管理了它自己的后台线程以供内部使用。

简而言之,我相信您对此的直觉是正确的。答案是“几乎从不”。 NSURLConnection 在主线程上最容易管理。

关于objective-c - 你什么时候想在辅助线程上运行 NSURLConnection ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com