Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Schedule<T>(T, int, int, JobHandle)

Schedules the job to execute concurrently on multiple worker threads.
Read time 1 minuteLast updated 4 days ago

Definition

  • Type: Method
  • Namespace: Unity.Jobs
  • Assembly: UnityEngine.ManagedKernelModule
public static JobHandle Schedule<T>(this T jobData, int arrayLength, int innerloopBatchCount, JobHandle dependsOn = default) where T : struct, IJobParallelFor

Parameters

jobData

T
The job and data to schedule.

arrayLength

This job's Execute method will be called this many times, with its index argument ranging from 0 to (arrayLength - 1). Typically, this corresponds to the length of an array or array-like container passed in the job struct, but this is not necessarily the case.

innerloopBatchCount

The number of iterations which workstealing is performed over. For example, a value of 32 means the job queue steals 32 iterations and then performs them in an efficient inner loop.

dependsOn

The JobHandle of the job's dependency. You can use dependencies to make sure that a job executes on worker threads after the dependency has completed execution and two jobs that read or write to same data don't run in parallel.

Returns

Type

Description

JobHandleThe JobHandle of the scheduled job. You can use the
JobHandle
as a dependency for a later job or to make sure that the job completes on the main thread.

Remarks

Note that these semantics are inconsistent with methods of the same name on other job interfaces. [[IJobParallelFor] does not expose a way to process all loop elements on a single worker thread. Instead, use IJobForExtensions.ScheduleByRef.
For large job structs, use IJobParallelForExtensions.ScheduleByRef to avoid any large pass-by-values.
Additional Resources: IJobParallelFor