Новое Распределяем каналы MAX по категориям и территориям. Читать новость

⬆️ назад ⬆️

⬆️ назад ⬆️

Когда это нужно

Только тогда, когда есть чужое внешнее API, которое не принимает токен отмены, но вам необходимо прервать ожидание.

Например, загрузка Addressables. Но тут важно не просто прервать ожидание: нужно ещё в фоне дождаться завершения загрузки и выполнить затем Release. Иначе этот ассет останется невыгруженным.

```
// один из десятка способов это сделать
async UniTask<Sprite> LoadIconAsync(string key, CancellationToken token)
{
var handle = Addressables.LoadAssetAsync<Sprite>(key);
try
{
return await handle.ToUniTask()
.AttachExternalCancellation(token);
}
catch (OperationCanceledException)
{
_ = handle.ToUniTask()
.ContinueWith(_ => Addressables.Release(handle));
throw;
}
}

```
Т.е. некоторые такие "неотменяемые" операции обязательно нужно дожидаться и финализировать.

⬇️ далее ⬇️
Просмотры: 21
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти