# IJobParallelForBatchExtensions

> Extension class for the IJobParallelForBatch job type providing custom overloads for scheduling and running.

## Definition

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

```csharp
public static class IJobParallelForBatchExtensions
```

## Static Methods

| Method                                                                                                                      | Description                                                                                                                                                                                                                                                                                                                                                                                                                        |
| --------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [EarlyJobInit](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/earlyjobinit.md)                   | Gathers and caches reflection data for the internal job system's managed bindings. Unity is responsible for calling this method - don't call it yourself.                                                                                                                                                                                                                                                                          |
| [Run](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/run.md)                                     | Executes the parallel batch job but on the main thread. See IJobParallelForBatchExtensions.Schedule for more information on how appending is performed.                                                                                                                                                                                                                                                                            |
| [RunBatch](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/runbatch.md)                           | Executes the parallel batch job but on the main thread. See IJobParallelForBatchExtensions.ScheduleBatch for more information on how appending is performed.                                                                                                                                                                                                                                                                       |
| [RunBatchByRef](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/runbatchbyref.md)                 | Executes the parallel batch job but on the main thread. See IJobParallelForBatchExtensions.ScheduleBatch for more information on how appending is performed.                                                                                                                                                                                                                                                                       |
| [RunByRef](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/runbyref.md)                           | Executes the parallel batch job but on the main thread. See IJobParallelForBatchExtensions.Schedule for more information on how appending is performed.                                                                                                                                                                                                                                                                            |
| [Schedule](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/schedule.md)                           | Schedules a job that will execute the parallel batch job for all `arrayLength` elements in batches of `indicesPerJobCount`. The Execute() method for Job T will be provided the start index and number of elements to safely operate on. In cases where `indicesPerJobCount` is not a multiple of `arrayLength`, the `count` provided to the Execute method of Job T will be smaller than the `indicesPerJobCount` specified here. |
| [ScheduleBatch](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/schedulebatch.md)                 | Schedules a job that will execute the parallel batch job for all `arrayLength` elements in batches of `indicesPerJobCount`. The Execute() method for Job T will be provided the start index and number of elements to safely operate on. In cases where `indicesPerJobCount` is not a multiple of `arrayLength`, the `count` provided to the Execute method of Job T will be smaller than the `indicesPerJobCount` specified here. |
| [ScheduleBatchByRef](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/schedulebatchbyref.md)       | Schedules a job that will execute the parallel batch job for all `arrayLength` elements in batches of `indicesPerJobCount`. The Execute() method for Job T will be provided the start index and number of elements to safely operate on. In cases where `indicesPerJobCount` is not a multiple of `arrayLength`, the `count` provided to the Execute method of Job T will be smaller than the `indicesPerJobCount` specified here. |
| [ScheduleByRef](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/schedulebyref.md)                 | Schedules a job that will execute the parallel batch job for all `arrayLength` elements in batches of `indicesPerJobCount`. The Execute() method for Job T will be provided the start index and number of elements to safely operate on. In cases where `indicesPerJobCount` is not a multiple of `arrayLength`, the `count` provided to the Execute method of Job T will be smaller than the `indicesPerJobCount` specified here. |
| [ScheduleParallel](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/scheduleparallel.md)           | Schedules a job that will execute the parallel batch job for all `arrayLength` elements in batches of `indicesPerJobCount`. The Execute() method for Job T will be provided the start index and number of elements to safely operate on. In cases where `indicesPerJobCount` is not a multiple of `arrayLength`, the `count` provided to the Execute method of Job T will be smaller than the `indicesPerJobCount` specified here. |
| [ScheduleParallelByRef](/engine/6000.7/script-reference/unity/jobs/ijobparallelforbatchextensions/scheduleparallelbyref.md) | Schedules a job that will execute the parallel batch job for all `arrayLength` elements in batches of `indicesPerJobCount`. The Execute() method for Job T will be provided the start index and number of elements to safely operate on. In cases where `indicesPerJobCount` is not a multiple of `arrayLength`, the `count` provided to the Execute method of Job T will be smaller than the `indicesPerJobCount` specified here. |
