# BackgroundThreadAsync()

> Resumes execution on a ThreadPool background thread. Completes immediately when called from a background thread.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static BackgroundThreadAwaitable BackgroundThreadAsync()
```

### Returns

| Type                      | Description                                                            |
| ------------------------- | ---------------------------------------------------------------------- |
| BackgroundThreadAwaitable | Awaitable object that completes when switching to a background thread. |

### Examples

```csharp
public async Awaitable Start()
{
    await Awaitable.BackgroundThreadAsync();
    // do some heavy math here without blocking the frame
    float result = 42;
    //switch back to the main frame to be able to call SceneManager.LoadSceneAsync
    await Awaitable.MainThreadAsync();
    await SceneManager.LoadSceneAsync("my-scene");
}
```
