# WaitForSecondsAsync(float, CancellationToken)

> Resumes execution after the specified number of seconds.

## Definition

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

```csharp
public static Awaitable WaitForSecondsAsync(float seconds, CancellationToken cancellationToken = default)
```

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Seconds to wait for.**** (\[CancellationToken]\(https\://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken)): Optional cancellation token.

### Returns

| Type                                                                  | Description |
| --------------------------------------------------------------------- | ----------- |
| [Awaitable](/engine/6000.6/script-reference/unityengine/awaitable.md) |             |

### Remarks

This method can only be called from the main thread and always completes on main thread.

**Note:**: `Awaitable.WaitForSecondsAsync` throws `OperationCanceledException` if the provided `CancellationToken` is canceled during the wait. This aborts the wait rather than interrupting it and continuing. If you use cancellation to indicate that a task has completed early and expect execution to proceed to subsequent statements, you must handle the exception explicitly or avoid passing a token here. Otherwise, code that awaits a delay with a token and then runs follow-up logic might skip that logic when the token is triggered.

### Examples

```csharp
async Awaitable Foo(){
  await Awaitable.WaitForSecondsAsync(2);
  // Do something
  await Awaitable.WaitForSecondsAsync(2);
  // Do something else
}
```
