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

EventID

структура в UnityEngine.LightTransport

Описание

Уникальный идентификатор для отслеживания асинхронных операций, выполняемых в контексте устройства.

EventID используется для отслеживания состояния завершения асинхронных операций, таких как чтение и запись в буфер. Каждый EventID представляет уникальную операцию и обеспечивает механизм запроса состояния завершения или ожидания завершения операции.

Основные характеристики EventID:

  • Одноразовое использование: Каждый EventID может использоваться только для одной операции.
  • Не поддающийся повторному использованию: после передачи в операцию он не может быть повторно использован.
  • Должны быть уничтожены: Используйте IDeviceContext.DestroyEvent для предотвращения утечки ресурсов.
  • Безопасный поток: может быть запрошен из различных потоков.

EventIDs обычно используются с:

// Create events to track multiple async operations
var writeEvent = context.CreateEvent();
var readEvent = context.CreateEvent();

// Start async write operation context.WriteBuffer(bufferSlice, inputData, writeEvent);

// Start async read operation (depends on write completing) context.ReadBuffer(bufferSlice, outputData, readEvent);

// Submit all operations for execution context.Flush();

// Wait for write to complete before proceeding bool writeSuccess = context.Wait(writeEvent); Assert.IsTrue(writeSuccess);

// Check if read completed without blocking if (context.IsCompleted(readEvent)) { Debug.Log("Read operation completed"); } else { // Wait for read to complete bool readSuccess = context.Wait(readEvent); Assert.IsTrue(readSuccess); }

// Clean up events. context.DestroyEvent(writeEvent); context.DestroyEvent(readEvent);

Свойства

Свойство Описание
ValueБазовое значение идентификатора события.

Конструкторы

Конструктор Описание
EventIDСоздать новый объект EventID.