AtomicSafetyHandle.CheckGetSecondaryDataPointerAndThrow
Declaration
public static void CheckGetSecondaryDataPointerAndThrow(Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle);Параметры
| Параметр | Описание |
|---|---|
| ручка | AtomicSafetyHandle для проверки. |
Описание
Проверьте, безопасно ли создавать представление с алюминиевой памятью для основного контейнера.
Используйте этот метод, когда реализуются методы основного контейнера, которые создают представления с алюминиевой памятью, такие как GetEnumerator или AsArray. Этот метод проверяет безопасность копирования указателя данных в резервную память основного контейнера в новую структуру представления, использующую номер вторичной версии.
Этот метод проверяет наличие ожидающих выполнения заданий, которые могут повлиять на размер основного контейнера и создать риск перераспределения резервной памяти контейнера. Этот метод не вызывает исключение, если задание записывает через AtomicSafetyHandle, использующий номер вторичной версии.
Разница между этим методом и `AtomicSafetyHandle.CheckReadAndThrow` заключается в том, что CheckReadAndThrow вызывает исключение, если есть ожидающие выполнения заданий записи в основной контейнер. CheckGetSecondaryDataPointerAndThrow вызывает исключение только в случае риска перераспределения резервной памяти основного контейнера, что делает указатель данных, скопированный в представление, недействительным.
Дополнительные сведения о номерах вторичных версий и безопасном доступе к динамическим контейнерам см. в Копирование структур NativeContainer.
Дополнительные ресурсы: NativeContainerAttribute.