Class IJobParallelForDeferExtensions
Namespace: Unity.Jobs
Assembly: Unity.Collections.dll
Syntax
public static class IJobParallelForDeferExtensions
Methods
EarlyJobInit<T>()
This method is only to be called by automatically generated setup code.
Declaration
public static void EarlyJobInit<T>() where T : struct, IJobParallelForDefer
Type Parameters
Name | Description |
---|---|
T |
ScheduleByRef<T>(ref T, int*, int, JobHandle)
Schedule the job for execution on worker threads. forEachCount is a pointer to the number of iterations, when dependsOn has completed. This API is unsafe, it is recommended to use the NativeList based Schedule method instead.
Declaration
public static JobHandle ScheduleByRef<T>(this ref T jobData, int* forEachCount, int innerloopBatchCount, JobHandle dependsOn = default) where T : struct, IJobParallelForDefer
Parameters
Type | Name | Description |
---|---|---|
T | jobData | The job and data to schedule. In this variant, the jobData is passed by reference, which may be necessary for unusually large job structs. |
int* | forEachCount | *forEachCount is used as the iteration count. |
int | innerloopBatchCount | Granularity in which workstealing is performed. A value of 32, means the job queue will steal 32 iterations and then perform them in an efficient inner loop. |
Job |
dependsOn | 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 |
---|---|
Job |
JobHandle The handle identifying the scheduled job. Can be used as a dependency for a later job or ensure completion on the main thread. |
Type Parameters
Name | Description |
---|---|
T |
ScheduleByRef<T, U>(ref T, NativeList<U>, int, JobHandle)
Schedule the job for execution on worker threads. list.Length is used as the iteration count. Note that it is required to embed the list on the job struct as well.
Declaration
public static JobHandle ScheduleByRef<T, U>(this ref T jobData, NativeList<U> list, int innerloopBatchCount, JobHandle dependsOn = default) where T : struct, IJobParallelForDefer where U : unmanaged
Parameters
Type | Name | Description |
---|---|---|
T | jobData | The job and data to schedule. In this variant, the jobData is passed by reference, which may be necessary for unusually large job structs. |
Native |
list | list.Length is used as the iteration count. |
int | innerloopBatchCount | Granularity in which workstealing is performed. A value of 32, means the job queue will steal 32 iterations and then perform them in an efficient inner loop. |
Job |
dependsOn | 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 |
---|---|
Job |
JobHandle The handle identifying the scheduled job. Can be used as a dependency for a later job or ensure completion on the main thread. |
Type Parameters
Name | Description |
---|---|
T | |
U |
Schedule<T>(T, int*, int, JobHandle)
Schedule the job for execution on worker threads. forEachCount is a pointer to the number of iterations, when dependsOn has completed. This API is unsafe, it is recommended to use the NativeList based Schedule method instead.
Declaration
public static JobHandle Schedule<T>(this T jobData, int* forEachCount, int innerloopBatchCount, JobHandle dependsOn = default) where T : struct, IJobParallelForDefer
Parameters
Type | Name | Description |
---|---|---|
T | jobData | The job and data to schedule. |
int* | forEachCount | *forEachCount is used as the iteration count. |
int | innerloopBatchCount | Granularity in which workstealing is performed. A value of 32, means the job queue will steal 32 iterations and then perform them in an efficient inner loop. |
Job |
dependsOn | 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 |
---|---|
Job |
JobHandle The handle identifying the scheduled job. Can be used as a dependency for a later job or ensure completion on the main thread. |
Type Parameters
Name | Description |
---|---|
T |
Schedule<T, U>(T, NativeList<U>, int, JobHandle)
Schedule the job for execution on worker threads. list.Length is used as the iteration count. Note that it is required to embed the list on the job struct as well.
Declaration
public static JobHandle Schedule<T, U>(this T jobData, NativeList<U> list, int innerloopBatchCount, JobHandle dependsOn = default) where T : struct, IJobParallelForDefer where U : unmanaged
Parameters
Type | Name | Description |
---|---|---|
T | jobData | The job and data to schedule. |
Native |
list | list.Length is used as the iteration count. |
int | innerloopBatchCount | Granularity in which workstealing is performed. A value of 32, means the job queue will steal 32 iterations and then perform them in an efficient inner loop. |
Job |
dependsOn | 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 |
---|---|
Job |
JobHandle The handle identifying the scheduled job. Can be used as a dependency for a later job or ensure completion on the main thread. |
Type Parameters
Name | Description |
---|---|
T | |
U |