# Schedule<T>(T, JobHandle)

> Schedules the job for execution on a worker thread.

## Definition

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

```csharp
public static JobHandle Schedule<T>(this T jobData, JobHandle dependsOn = default) where T : struct, IJob
```

### Parameters

**** (T): The job and data to schedule.**** (\[JobHandle]\(/engine/6000.3/script-reference/unity/jobs/jobhandle)): The dependency of the job. Dependencies ensure that a job executes on worker threads after the dependency has completed execution, and that two jobs reading or writing to same data do not run in parallel.

### Returns

| Type                                                                 | Description                                                                                                                             |
| -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| [JobHandle](/engine/6000.3/script-reference/unity/jobs/jobhandle.md) | The handle identifying the scheduled job, which you can use as a dependency for a later job or to ensure completion on the main thread. |

### Remarks

For large job structs, use [IJobExtensions.ScheduleByRef](/engine/6000.3/script-reference/unity/jobs/ijobextensions/schedulebyref.md) to avoid any large pass-by-values.

Additional Resources: [IJob](/engine/6000.3/script-reference/unity/jobs/ijob.md).
