Объявление
public DownloadHandlerScript();Описание
Создайте DownloadHandlerScript, который выделяет новые буферы при передаче данных в обратные вызовы.
Этот конструктор по умолчанию помещает этот DownloadHanderScript в режим без предварительного выделения. Это влияет на работу обратного вызова ReceiveData.
В режиме без предварительного распределения новый массив управляемых байтов будет выделяться каждый раз при вызове ReceiveData, а длина массива, передаваемого в ReceiveData, всегда будет равна количеству новых байтов, доступных для использования.
Это удобно, но может привести к нежелательной сборке мусора. Если для вашего варианта использования требуется реализация, которая позволяет избежать ненужной сборки мусора, вместо этого используйте предварительно распределенный режим.
Объявление
public DownloadHandlerScript(byte[] preallocatedBuffer);Параметры
preallocatedBuffer | Байтовый буфер, в который будут скопированы данные для использования DownloadHandler.ReceiveData. |
Описание
Создайте DownloadHandlerScript, который повторно использует предварительно выделенный буфер для передачи данных в функции обратного вызова.
Этот конструктор помещает этот DownloadHandlerScript в предварительно выделенный режим. Это влияет на работу обратного вызова DownloadHandler.ReceiveData.
В предварительно выделенном режиме массив байтов preallocatedBuffer
будет повторно использоваться для передачи данных в DownloadHandler.ReceiveData обратный вызов, вместо того, чтобы каждый раз выделять новые буферы. Система не будет обнулять массив между использованиями, поэтому аргумент dataLength
для DownloadHandler.ReceiveData должен быть используется для обнаружения новых байтов.
В этом режиме DownloadHandlerScript не будет выделять память во время загрузки или обработки данных ответа HTTP. Если ваш вариант использования чувствителен к сборке мусора, рекомендуется использовать предварительно распределенный режим.