Разница между CoroutineScope и coroutineScope в КотлинеAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Разница между CoroutineScope и coroutineScope в Котлине

Сообщение Anonymous »

Может ли кто-нибудь прояснить разницу между функциями CoroutineScope() и coroutineScope()?

Когда я попытался проверить исходный код, я обнаружил что они оба являются функциями CoroutineScope.kt. Кроме того, coroutineScope() является функцией приостановки, а другая — обычной функцией

Ниже приведена документация, которую я смог найти:

Код: Выделить всё

/**
* Creates a [CoroutineScope] that wraps the given coroutine [context].
*
* If the given [context] does not contain a [Job] element, then a default `Job()` is created.
* This way, cancellation or failure or any child coroutine in this scope cancels all the other children,
* just like inside [coroutineScope] block.
*/
@Suppress("FunctionName")
public fun CoroutineScope(context: CoroutineContext): CoroutineScope =
ContextScope(if (context[Job] != null) context else context + Job())
И

Код: Выделить всё

/**
* Creates a [CoroutineScope] and calls the specified suspend block with this scope.
* The provided scope inherits its [coroutineContext][CoroutineScope.coroutineContext] from the outer scope, but overrides
* the context's [Job].
*
* This function is designed for _parallel decomposition_ of work. When any child coroutine in this scope fails,
* this scope fails and all the rest of the children are cancelled (for a different behavior see [supervisorScope]).
* This function returns as soon as the given block and all its children coroutines are completed.
* A usage example of a scope looks like this:
*
* ```
* suspend fun showSomeData() = coroutineScope {
*
*   val data = async(Dispatchers.IO) { //  R): R =
suspendCoroutineUninterceptedOrReturn { uCont ->
val coroutine = ScopeCoroutine(uCont.context, uCont)
coroutine.startUndispatchedOrReturn(coroutine, block)
}
Я хочу увидеть разницу между ними. Если кто-нибудь может ответить, когда какой из них использовать, это было бы полезно.

Подробнее здесь: https://stackoverflow.com/questions/593 ... -in-kotlin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разница CoroutineScope(Dispatchers.IO + Job()) и CoroutineScope(Dispatcher.IO) + Job()
    Anonymous » » в форуме Android
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Разница CoroutineScope(Dispatchers.IO + Job()) и CoroutineScope(Dispatcher.IO) + Job()
    Anonymous » » в форуме Android
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Разница между CoroutineScope(Dispatchers.IO + Job()) и CoroutineScope(Dispatcher.IO) + Job()
    Anonymous » » в форуме Android
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • CoroutineScope не ждет дочерних сопрограмм?
    Гость » » в форуме Android
    0 Ответы
    39 Просмотры
    Последнее сообщение Гость
  • CoroutineScope не ждет дочерних сопрограмм?
    Гость » » в форуме Android
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость

Вернуться в «Android»