Show / Hide Table of Contents

# Class Coroutines

A class providing coroutine helpers.

##### Inheritance

Object
Coroutines

##### Inherited Members

Object.ToString()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()

###### Namespace: IPA.Utilities.Async

###### Assembly: IPA.Loader.dll

##### Syntax

    public static class Coroutines

### Methods

| Improve this Doc View Source

#### AsTask(IEnumerator)

Binds a Task to a Unity coroutine, capturing exceptions as well as the coroutine call stack.

##### Declaration

    public static Task AsTask(IEnumerator coroutine)

##### Parameters

Type | Name | Description
--- | --- | ---
IEnumerator | coroutine | the coroutine to bind to a task

##### Returns

Type | Description
--- | ---
Task | a Task that completes when `coroutine` completes, and fails when it throws

##### Remarks

This may be called off of the Unity main thread. If it is, the coroutine start will be scheduled using the default UnityMainThreadTaskScheduler and will be run on the main thread as required by Unity.

Unity provides a handful of coroutine helpers that are not IEnumerables. Most of these are not terribly helpful on their own, however UnityEngine.WaitForSeconds may be. Instead, prefer to use the typical .NET Wait(TimeSpan) or similar overloads, or use UnityEngine.WaitForSecondsRealtime.

| Improve this Doc View Source

#### WaitForTask(Task)

Stalls the coroutine until `task` completes, faults, or is canceled.

##### Declaration

    public static IEnumerator WaitForTask(Task task)

##### Parameters

Type | Name | Description
--- | --- | ---
Task | task | the Task to wait for

##### Returns

Type | Description
--- | ---
IEnumerator | a coroutine waiting for the given task

| Improve this Doc View Source

#### WaitForTask(Task, Boolean)

Stalls the coroutine until `task` completes, faults, or is canceled.

##### Declaration

    public static IEnumerator WaitForTask(Task task, bool throwOnFault = false)

##### Parameters

Type | Name | Description
--- | --- | ---
Task | task | the Task to wait for
Boolean | throwOnFault | whether or not to throw if the task faulted

##### Returns

Type | Description
--- | ---
IEnumerator | a coroutine waiting for the given task