Я пытаюсь использовать Kotlin сопрограмму вместо устаревшего Java потока для выполнения фоновых действий:
Я узнал из этой ссылки , и она отлично работает
val job = launch {
for(file in files) {
ensureActive() //will throw cancelled exception to interrupt the execution
readFile(file)
}
}
Но в моем случае у меня очень сложная вызывающая функция readFile (), как я могу проверить, активно ли задание внутри этой функции?
val job = launch {
for(file in files) {
ensureActive() //will throw cancelled exception to interrupt the execution
complexFunOfReadingFile(file) //may process each line of the file
}
}
Я не хочу копировать имплементация функции внутри этой области сопрограммы или передать экземпляр задания в качестве параметра в эту функцию. Как официально разрешить этот случай?
Большое спасибо.