Version: Unity 6.1 Alpha (6000.1)
LanguageEnglish
  • C#

IJobParallelForExtensions.ScheduleByRef

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public static Unity.Jobs.JobHandle ScheduleByRef(ref T jobData, int arrayLength, int innerloopBatchCount, Unity.Jobs.JobHandle dependsOn);

Parameters

jobData 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

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

Description

Schedules the job to execute concurrently, distributing work across multiple worker threads.

This variant passes the job struct by reference instead of by value, which can be faster than IJobParallelForExtensions.Schedule for larger job structs. Note that worker threads always operate on a local copy of the job struct.

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.

Additional resources: IJobParallelFor.