gpt4 book ai didi

ios - 如何使用 Kotlin-Multiplatform 在 iOS 应用程序的后台线程中运行任务?

转载 作者:行者123 更新时间:2023-12-05 02:42:37 25 4
gpt4 key购买 nike

我一直在尝试在 iOS 项目的后台线程上的 Kotlin-Multiplatform 库中运行任务,但遇到了一些问题:

我尝试同时使用 Kotlin-Coroutines 和 GCD 的平台库,但只能在 iOS 的主线程中运行任务。每当我尝试将某些内容异步发送到后台线程时,iOS 应用程序就会崩溃并出现以下错误:

“kotlin.native.IncorrectDereferenceException:非法尝试从其他线程访问非共享 com.hp.jarvis.kmm.LogFile.$saveLog$lambda-0$FUNCTION_REFERENCE$9@155a948”

最佳答案

IncorrectDereferenceException 基本上是您尝试从后台线程访问全局状态的信号。

你可以玩:

  • @ThreadLocal -> 为特定对象的每个线程制作一个副本
  • @SharedImmutable -> 将卡住您的对象并使其可用于所有线程,请注意,如果您尝试更改卡住对象的值,您将得到 InvalidMutabilityException

我肯定会阅读此博客以了解当前的内存模型:https://touchlab.co/kotlin-native-concurrency/

关于ios - 如何使用 Kotlin-Multiplatform 在 iOS 应用程序的后台线程中运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67422231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com