我在用斯威夫特写个测试。我正在测试的函数阻止当前线程,所以我想在后台运行它。以前,我会用DispatchQueue.global.async {}包装它。
使用Swift的新的结构化并发,我找到了Task.detached。然而,上面的笔记上写着
通常,应该避免创建分离的任务,以利于使用
async函数、async let声明和await表达式。
在没有async标志的情况下,苹果推荐的另一种方式可以异步启动吗?
发布于 2021-10-14 15:50:06
文档只是告诉您,在许多情况下,应该首选结构化并发,但是在需要非结构化并发的地方,可以随意使用它。
已经说过了,与其创建一个分离的任务,还可以启动一个非结构化的任务。见Swift编程语言:并发性:非结构化任务。简而言之,与使用Task.detached { … }创建一个分离的任务相比,您可以只使用Task { … }
https://stackoverflow.com/questions/69572419
复制相似问题