Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.38 KB | None | 0 0
  1. private async Task<ProcessedAsset> LoadAndProcessAsset(string assetPath)
  2. {
  3.      var asset = await LoadAssetAsync(assetPath ); // Дожидаемся асинхронной загрузки ассета с диска
  4.      var processTask = await ProcessAssetAsync(task); // Дожидаемся асинхронной обработки ассетов
  5. }
  6.  
  7. var loadAndProcessTasks = new List<Task<ProcessedAsset>>(); // Список задач по загрузке и обработке ассетов, которые по завершению вернут уже обработанные.
  8. // Этот цикл завершится почти мгновенно, т.к. тут мы только выставляем задачи в очередь, а не ждём их завершения.
  9. foreach(var assetPath in paths)
  10. {    
  11.      var loadAndProcessTask = LoadAndProcessAsset(path); // Асинхронно запускаем загрузку обработку ассета и не ждём её окончания
  12.      loadAndProcessTasks .Add(loadAndProcessTask ); // Добавляем задачу по загрузке и обработке ассета в список чтобы потом её дождаться
  13. }
  14. processedAssets = await Task.WhenAll(processedTasks); // Ожидаем завершения всех асинхронных загрузок+обработок ассетов
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement