【问题标题】:What is the importance of using WorkerThread annotation for a method that run in coroutine对在协程中运行的方法使用 WorkerThread 注释的重要性是什么
【发布时间】:2021-12-09 01:51:51
【问题描述】:

我注意到我最近开始工作的项目中的一些方法,如下所述。在此方法中,功能在协程中执行。我想知道这里 WorkerThread 注解的用途。

@WorkerThread
override suspend fun generate(context: Context) {
  return withContext(Dispatchers.IO) {
    // Some functionality
  }
}

【问题讨论】:

    标签: android kotlin kotlin-coroutines coroutine worker-thread


    【解决方案1】:

    @WorkerThread 注释表明该函数应该从工作线程中调用,无论是出于计算原因还是时间原因。

    它不会阻止您从主线程调用它,但如果您这样做,linter 或代码检查工具会警告您。

    【讨论】:

      【解决方案2】:

      通过使用 @WorkerThread 注释标记方法,作者告诉 此方法可能需要一些时间来执行,并且可能会冻结用户界面 (UI),因此它应该在工作线程上运行以防止这种情况发生。

      顺便说一句,您还可以使用@WorkerThread 注释标记一个类。在这种情况下,类中的所有方法都应该在工作线程上调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 1970-01-01
        • 2013-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多