如何使用新的Swift结构化并发启动后台任务?



我正在用Swift写一个测试。我正在测试的函数阻塞了当前线程,所以我想在后台运行它。以前我会将其封装在DispatchQueue.global.async {}中。

在Swift新的结构化并发中,我发现了Task.detached。然而,上面的注释写着

一般应避免创建分离任务,而应使用async函数、async let声明和await表达式

当没有async标志时,是否有另一种苹果推荐的异步启动方式?

文档只是告诉您,在许多情况下,结构化并发应该是首选,但在需要非结构化并发的情况下,可以随意使用它。

已经说过,而不是创建一个分离的任务,你可以开始一个非结构化的任务。参见Swift编程语言:并发:非结构化任务。简而言之,您可以使用Task { … }

,而不是使用Task.detached { … }创建一个分离的任务。

相关内容

  • 没有找到相关文章

最新更新