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