Предположим, что мне нужен только один метод для запуска в async.
Итак, у меня есть метод async, как показано ниже:
public async Task Load(){
Task task1 = GetAsync(1);
Task task2 = GetAsync(2);
Task task3 = GetAsync(3);
var data1 = await task1; // <--Freezes here when called from GetSomethingElse()
var data2 = await task2;
var data3 = await task3;
..process data..
}
И затем я пытаюсь вызвать этот метод async в другом методе как задачу, и хотел бы, чтобы он подождал, пока этот конкретный фрагмент кода async не будет выполнен. Проблема в том, что нет. Когда он достигает первого await в Load(), он просто не заканчивает загрузку. Отладчик пуст и не дает никакой другой ошибки.
Можно ли вызывать метод async из метода non async, как это?
Есть причина, по которой мне не нужна эта конкретная задача async, но функция Load(), которую я делаю.
public void GetSomethingElse(){
var task1 = Load().Wait();
}
Как это возможно?
Я попытался даже изменить метод Load() на использование var data = task1.Wait() и т.д. вместо await, но все равно никакой разницы, независимо от того, каким способом я пытаюсь. Если кто-то может помочь, это будет оценено.