IJobParallelForTransformExtensions.ScheduleByRef
Declaration
public static Unity.Jobs.JobHandle ScheduleByRef(ref T jobData, Jobs.TransformAccessArray transforms, Unity.Jobs.JobHandle dependsOn);Параметры
| Параметр | Описание |
|---|---|
| jobData | Задание для планирования. |
| преобразования | TransformAccessArray для запуска задания. |
| dependsOn | JobHandle, содержащий любые задания, которые должны завершить выполнение до начала этого задания. Вы можете объединить несколько заданий с JobHandle.CombineDependencies. Используйте зависимости, чтобы обеспечить, что два задания, которые читают или записывают одни и те же данные, не работают параллельно. |
Возвращаемое значение
JobHandle Обращение, идентифицирующее запланированное задание, которое можно использовать в качестве зависимости для более позднего задания или для обеспечения завершения на главном потоке.
Описание
Расписывает задание IJobParallelForTransform с доступом для чтения и записи данных преобразования.
Чтобы избежать условий гонки, этот режим расписания сортирует входные преобразования по иерархии. Преобразования с общим корневым объектом всегда обрабатываются в одном потоке, хотя порядок обработки в каждой иерархии не определен. TransformAccessArray определяются на этапе сортировки и не будут передаваться в IJobParallelForTransform.Execute(), так что задания могут безопасно предполагать, что все TransformAccess экземпляры действительны, когда используется этот режим планирования.
Если доступ только для чтения для преобразования данных достаточен, используйте IJobParallelForTransformExtensions.ScheduleReadOnlyByRef вместо этого.
Этот вариант передаёт структуру задания по ссылке, а не по значению, что может быть быстрее, чем IJobParallelForTransformExtensions.Schedule для крупных структур заданий. Учтите, что рабочие потоки всегда работают с локальной копией структуры задания.