gpt4 book ai didi

iphone - 如何在大型中央调度操作中运行异步操作?

转载 作者:行者123 更新时间:2023-12-01 17:01:40 25 4
gpt4 key购买 nike

我有一个需要处理的作业队列,该队列由计时器定期踢,而且在将新作业添加到队列时调用线程。

当队列被踢时,我想在另一个线程上启动队列的处理,因为我不想阻塞调用线程(在很多情况下,它将是UI线程)。

因此,为此,我在高优先级并发队列上运行了一个大型中央调度操作,这将创建我的http类的实例,并通过它提交作业(作业本质上是一个http请求)。

http类内部使用NSURLConnection执行异步请求。

我的问题是GCD操作完成了(因为它已经提交了所有异步http请求),所以我猜想它正在运行的线程已清理,重用或退出了。这正在清除正在执行这些异步Web请求的过程中的http类。

我的问题是,如何使我的http类挂起并完成处理请求,而无需让GCD操作等待它们?

干杯

最佳答案

异步http的主要目的不是阻止主线程,因为您正在通过操作队列使用后台线程,我想说它已经得到了解决。因此,如果没有明确定义的处理终点可以将数据取回,那将是什么呢?

我想说,同步http会更简洁地设计并且更易于支持。您可以使用具有同步方法的NSURLConnection:

[NSURLConnection sendSynchronousRequest:returningResponse:error:]

我还刚刚找到了一个提供同步操作模式的库,并 promise 使 cocoa (包括 cocoa touch )网络编程更加容易: ASIHttpRequest

关于iphone - 如何在大型中央调度操作中运行异步操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261122/

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