# IGrainRuntime Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.igrainruntime/)

## DeactivateOnIdle(IGrainContext) {#deactivateonidle-orleans-runtime-igraincontext-bcd2ef4d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.igrainruntime/methods/deactivateonidle-orleans-runtime-igraincontext-bcd2ef4d/)

```csharp
public abstract void DeactivateOnIdle(IGrainContext grainContext)
```

Deactivates the provided grain when it becomes idle.

### Parameters

- `grainContext` (`IGrainContext`): The grain context.

## DelayDeactivation(IGrainContext, TimeSpan) {#delaydeactivation-orleans-runtime-igraincontext-system-timespan-702c459c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.igrainruntime/methods/delaydeactivation-orleans-runtime-igraincontext-system-timespan-702c459c/)

```csharp
public abstract void DelayDeactivation(IGrainContext grainContext, TimeSpan timeSpan)
```

Delays idle activation collection of the provided grain due to inactivity until at least the specified time has elapsed.

### Parameters

- `grainContext` (`IGrainContext`): The grain context.
- `timeSpan` (`TimeSpan`): The time to delay idle activation collection for.

## GetStorage(IGrainContext) {#getstorage-1-orleans-runtime-igraincontext-a394c221}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.igrainruntime/methods/getstorage-1-orleans-runtime-igraincontext-a394c221/)

```csharp
public abstract IStorage<TGrainState> GetStorage<TGrainState>(IGrainContext grainContext)
```

Gets grain storage for the provided grain.

### Parameters

- `grainContext` (`IGrainContext`): The grain context.

### Returns

The grain storage for the provided grain.
