[英]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.