Unity 6.3
0 онлайн 61 гостей 3 в системе
Вход

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.