IJobForExtensions.ScheduleParallelByRef
Declaration
public static Unity.Jobs.JobHandle ScheduleParallelByRef(ref T jobData, int arrayLength, int innerloopBatchCount, Unity.Jobs.JobHandle dependency);Параметры
| Параметр | Описание |
|---|---|
| jobData | Задание и данные для планирования. |
| arrayLength | Метод Execute этого задания будет вызван указанное количество раз, при этом его аргумент-индекс принимает значения от 0 до (arrayLength - 1). Обычно это соответствует длине массива или похожего на массив контейнера, переданного в структуру задания, но так бывает не всегда. |
| innerloopBatchCount | Число итераций, над которыми выполняется workstealing. Например, значение 32 означает, что очередь заданий похищает 32 итерации, а затем выполняет их в эффективном внутреннем цикле. |
| зависимость | JobHandle зависимости задания. Вы можете использовать зависимости, чтобы убедиться, что задание выполняется на рабочих потоках после завершения выполнения зависимости и что два задания, чтящие или записывающие одни и те же данные, не работают параллельно. |
Возвращаемое значение
JobHandle Дескриптор JobHandle запланированного задания. JobHandle можно использовать как зависимость для последующего задания или чтобы гарантировать завершение задания в главном потоке.
Описание
Расписывает одновременное выполнение задания, распределяя работу между несколькими рабочими потоками.
Этот вариант передаёт структуру задания по ссылке, а не по значению, что может быть быстрее, чем IJobForExtensions.ScheduleParallel для крупных структур заданий. Учтите, что рабочие потоки всегда работают с локальной копией структуры задания.
Чтобы обработать все элементы цикла на одном рабочем потоке, используйте IJobForExtensions.ScheduleByRef.
Дополнительные ресурсы: IJobFor.