# IJobForExtensions

> Contains extension methods for jobs implementing the IJobFor interface.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Jobs](/engine/6000.7/script-reference/unity/jobs.md)
* **Assembly:** UnityEngine.ManagedKernelModule

```csharp
public static class IJobForExtensions
```

## Remarks

The methods in this extension class add an instance of a job to the work queue, while [IJobFor.Execute](/engine/6000.7/script-reference/unity/jobs/ijobfor/execute.md) defines how to perform an asynchronous task. Use [IJobForExtensions.ScheduleByRef](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/schedulebyref.md) to request asynchronous execution, or [IJobForExtensions.RunByRef](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/runbyref.md) to execute the job immediately on the main thread.

Additional Resources: [IJobFor](/engine/6000.7/script-reference/unity/jobs/ijobfor.md)

## Examples

```csharp
{code Tests/EditModeAndPlayModeTests/Jobs/Assets/DocumentationExamples/ManagedJobDocExamples.cs#ijobfor-apidocs-example}.
```

## Static Methods

| Method                                                                                                         | Description                                                                                  |
| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [EarlyJobInit](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/earlyjobinit.md)                   | Gathers and caches reflection data for the internal job system's managed bindings.           |
| [Run](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/run.md)                                     | Performs the job's Execute method immediately on the same thread.                            |
| [RunByRef](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/runbyref.md)                           | Performs the job's Execute method immediately on the same thread.                            |
| [Schedule](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/schedule.md)                           | Schedules the job for execution on a worker thread.                                          |
| [ScheduleByRef](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/schedulebyref.md)                 | Schedules the job for execution on a worker thread.                                          |
| [ScheduleParallel](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/scheduleparallel.md)           | Schedules the job to execute concurrently on multiple worker threads.                        |
| [ScheduleParallelByRef](/engine/6000.7/script-reference/unity/jobs/ijobforextensions/scheduleparallelbyref.md) | Schedules the job to execute concurrently, distributing work across multiple worker threads. |
