# ScheduleBatch<T>(T, int, int, JobHandle)

> 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.

## Definition

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

```csharp
public static JobHandle ScheduleBatch<T>(this T jobData, int arrayLength, int indicesPerJobCount, JobHandle dependsOn = default) where T : struct, IJobParallelForBatch
```

### Parameters

**** (T): The job and data to schedule.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Total number of elements to consider when batching.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements to consider in a single parallel batch.**** (\[JobHandle]\(/engine/6000.7/script-reference/unity/jobs/jobhandle)): Dependencies are used to ensure that a job executes on workerthreads after the dependency has completed execution. Making sure that two jobs reading or writing to same data do not run in parallel.

### Returns

| Type                                                                 | Description                                                                                                                              |
| -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| [JobHandle](/engine/6000.7/script-reference/unity/jobs/jobhandle.md) | JobHandle The handle identifying the scheduled job. Can be used as a dependency for a later job or ensure completion on the main thread. |
