Параметры
dependency | (Необязательно) JobHandle для ожидания перед закрытием файла. |
Возвращает
JobHandle JobHandle для асинхронной операции закрытия. Вы можете использовать этот JobHandle в качестве зависимости при планировании других заданий, которые не должны выполняться до завершения операции закрытия.
Описание
Асинхронно закрывает файл, на который ссылается этот FileHandle, и удаляет экземпляр FileHandle.
Всегда закрывайте FileHandles, когда закончите, чтобы избежать утечек памяти и ненужной блокировки файлов. FileHandles, которые не открываются, все равно должны быть закрыты.
После закрытия экземпляр FileHandle уничтожается и становится недействительным. Чтобы проверить завершение операции закрытия, используйте JobHandle, возвращаемый этим методом.
using System.IO;
using Unity.IO.LowLevel.Unsafe;
using Unity.Jobs;
using UnityEngine;
class AsyncCloseSample : MonoBehaviour
{
FileHandle fileHandle;
public unsafe void Start()
{
string filePath = Path.Combine(Application.streamingAssetsPath, "myfile.bin");
fileHandle = AsyncReadManager.OpenFileAsync(filePath);
}
public unsafe void Update()
{
if (fileHandle.IsValid() && fileHandle.JobHandle.IsCompleted)
{
JobHandle closeHandle = fileHandle.Close();
closeHandle.Complete();
}
}
}