Неразрешенная ссылочная тема - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь раскрутить новый поток в kotlin для Android, используя kotlin.concurrency.thread Однако я продолжаю получать:

 Unresolved reference: thread

Я думал, что это было в стандартной библиотеке?

Актуальный код:

fun identify(userId: Integer) {
    thread() {
      CustomExceptionHandler(context)
      DoStuffClass.doStuff(context, userId)
    }
  }

1 Ответ

0 голосов
/ 26 ноября 2018

Правильный оператор импорта:

import kotlin.concurrent

Пример кода должен быть:

fun identify(userId: Integer) {
    thread {
        CustomExceptionHandler(context)
        DoStuffClass.doStuff(context, userId)
    }
}

Поскольку функция thread определяется как:

/**
 * Creates a thread that runs the specified [block] of code.
 *
 * @param start if `true`, the thread is immediately started.
 * @param isDaemon if `true`, the thread is created as a daemon thread. The Java Virtual Machine exits when
 * the only threads running are all daemon threads.
 * @param contextClassLoader the class loader to use for loading classes and resources in this thread.
 * @param name the name of the thread.
 * @param priority the priority of the thread.
 */
public fun thread(
    start: Boolean = true,
    isDaemon: Boolean = false,
    contextClassLoader: ClassLoader? = null,
    name: String? = null,
    priority: Int = -1,
    block: () -> Unit
): Thread {
    ...
}

Как объяснено здесь , функция thread использует лямбду в качестве последнего параметра, затем, по синтаксису Kotlin, функция с одним параметром не нуждается в скобках, только лямбда-блок.

...