对不起,初学者的问题。
我有一个操作,该操作取决于从网络返回的数据的结果,并且该操作可能需要另一个网络请求。由于已经在datatask中调用了第一个网络请求,因此我想对第二个网络请求使用相同的线程,但不知道如何执行。有小费吗? ks

 let task = URLSession.shared.dataTask(with: request  as URLRequest )
        {   data, response, error in

            if func_1 (data) {
                return
            }else {
                //call another network request here, but don't want to do
                //another task = URLSession.shared.... again since we are already on an async thread

            }
        }

最佳答案

//call another network request here, but don't want to do
//another task = URLSession.shared.... again since we are already on an async thread


这是一个误会。此时,创建另一个网络请求没有问题。所有要做的就是在适当的队列上放置另一个请求。安排该线程时,在哪个线程上运行都无关紧要。

我强烈推荐Apple的Concurrency Programming Guide。您可能对iOS并发的工作方式有一些误解。 iOS工作的关键部分是了解GCD队列,尤其是它们与线程的区别。

关于ios - 快速,在同一任务的线程中再次调用网络,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40450690/

10-10 20:46