# GrainBaseExtensions

Package: [Microsoft.Orleans.Core.Abstractions](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Core.Abstractions) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core.Abstractions/Core/IGrainBase.cs#L39)

```csharp
public static class GrainBaseExtensions
```

Helper methods for [IGrainBase](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.igrainbase/) implementations.

## Methods

- [DeactivateOnIdle(IGrainBase)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/deactivateonidle-this-orleans-igrainbase-39cd40ea/)
- [MigrateOnIdle(IGrainBase)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/migrateonidle-this-orleans-igrainbase-d62d28e3/)
- [RegisterGrainTimer(IGrainBase, Func&lt;CancellationToken, Task&gt;, GrainTimerCreationOptions)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-this-orleans-igrainbase-system-func-system-threading-cancella-10b2ade8/)
- [RegisterGrainTimer(IGrainBase, Func&lt;CancellationToken, Task&gt;, TimeSpan, TimeSpan)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-this-orleans-igrainbase-system-func-system-threading-cancella-35aa6fb9/)
- [RegisterGrainTimer(IGrainBase, Func&lt;Task&gt;, GrainTimerCreationOptions)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-this-orleans-igrainbase-system-func-system-threading-tasks-ta-76343590/)
- [RegisterGrainTimer(IGrainBase, Func&lt;Task&gt;, TimeSpan, TimeSpan)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-this-orleans-igrainbase-system-func-system-threading-tasks-ta-bec417a1/)
- [RegisterGrainTimer(IGrainBase, Func&lt;TState, CancellationToken, Task&gt;, TState, GrainTimerCreationOptions)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-1-this-orleans-igrainbase-system-func-tstate-system-threading-392e96ae/)
- [RegisterGrainTimer(IGrainBase, Func&lt;TState, CancellationToken, Task&gt;, TState, TimeSpan, TimeSpan)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-1-this-orleans-igrainbase-system-func-tstate-system-threading-b59b5d77/)
- [RegisterGrainTimer(IGrainBase, Func&lt;TState, Task&gt;, TState, GrainTimerCreationOptions)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-1-this-orleans-igrainbase-system-func-tstate-system-threading-8069edf2/)
- [RegisterGrainTimer(IGrainBase, Func&lt;TState, Task&gt;, TState, TimeSpan, TimeSpan)](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.grainbaseextensions/methods/registergraintimer-1-this-orleans-igrainbase-system-func-tstate-system-threading-41273f23/)
