# SiloBuilderStartupExtensions.AddStartupTask(ISiloBuilder, Func&lt;IServiceProvider, CancellationToken, Task&gt;, int)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.silobuilderstartupextensions/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.silobuilderstartupextensions/methods/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Hosting/SiloBuilderStartupExtensions.cs)

```csharp
public static ISiloBuilder AddStartupTask(this ISiloBuilder builder, Func<IServiceProvider, CancellationToken, Task> startupTask, int stage = 20000)
```

Adds a startup task to be executed when the silo has started.

### Parameters

- `builder` (`ISiloBuilder`): The builder.
- `startupTask` (`Func<IServiceProvider, CancellationToken, Task>`): The startup task.
- `stage` (`int`): The stage to execute the startup task, see values in [ServiceLifecycleStage](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.servicelifecyclestage/).

### Returns

The provided [ISiloBuilder](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.isilobuilder/).
