[英]Converting non-sendable function value may introduce data races
我有一段简单的代码:
struct ContentView: View {
var body: some View {
Text("Hello world!")
.task {
await myAsyncFunc()
}
}
private func myAsyncFunc() async {}
}
这编译得很好。 但是,如果我用这个替换任务:
.task(myAsyncFunc)
它不起作用,并给我以下错误:
将不可发送的 function 值转换为“@Sendable () async -> Void”可能会引入数据竞争
为什么会这样,我该如何解决?
正如它所说, function 可以标记为@Sendable
。 这用于防止数据竞争。
将其更改为:
@Sendable private func myAsyncFunc() async {}
请注意, @Sendable
必须在访问修饰符之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.