Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private async Task<ProcessedAsset> LoadAndProcessAsset(string assetPath)
- {
- var asset = await LoadAssetAsync(assetPath ); // Дожидаемся асинхронной загрузки ассета с диска
- var processTask = await ProcessAssetAsync(task); // Дожидаемся асинхронной обработки ассетов
- }
- var loadAndProcessTasks = new List<Task<ProcessedAsset>>(); // Список задач по загрузке и обработке ассетов, которые по завершению вернут уже обработанные.
- // Этот цикл завершится почти мгновенно, т.к. тут мы только выставляем задачи в очередь, а не ждём их завершения.
- foreach(var assetPath in paths)
- {
- var loadAndProcessTask = LoadAndProcessAsset(path); // Асинхронно запускаем загрузку обработку ассета и не ждём её окончания
- loadAndProcessTasks .Add(loadAndProcessTask ); // Добавляем задачу по загрузке и обработке ассета в список чтобы потом её дождаться
- }
- processedAssets = await Task.WhenAll(processedTasks); // Ожидаем завершения всех асинхронных загрузок+обработок ассетов
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement