# IWorkItemScheduler Methods

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

## QueueAction(Action) {#queueaction-system-action-8828b35c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.iworkitemscheduler/methods/queueaction-system-action-8828b35c/)

```csharp
public abstract void QueueAction(Action action)
```

Schedules an action for execution by this instance.

### Parameters

- `action` (`Action`): The action.

## QueueAction(Action&lt;object&gt;, object) {#queueaction-system-action-object-object-fb31f3dd}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.iworkitemscheduler/methods/queueaction-system-action-object-object-fb31f3dd/)

```csharp
public abstract void QueueAction(Action<object> action, object state)
```

Schedules a work item for execution by this instance.

### Parameters

- `action` (`Action<object>`): The work item.
- `state` (`object`): The state passed when invoking the item.

## QueueTask(Task) {#queuetask-system-threading-tasks-task-15f35eff}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.iworkitemscheduler/methods/queuetask-system-threading-tasks-task-15f35eff/)

```csharp
public abstract void QueueTask(Task task)
```

Schedules a task to be started by this instance.

### Parameters

- `task` (`Task`): The task.
