Метод Task.Wait
ожидает завершения выполнения Task
.Возвращает void
.Это причина, по которой исключение.
Теперь, чтобы преодолеть исключение и прочитать возвращаемое значение, один способ, как указано в другом ответе и комментариях;await
вызов, как показано ниже:
public async void TestAsync()
{
var listOfBalances = await handleSummaryOfWallets();
}
Обратите внимание, что ваш вызывающий метод также должен быть async
методом.
Поскольку вы вызываете Wait
в своем коде, он выглядитчто вам нужен результат немедленно;вам больше нечего делать, что не зависит от результата.В этом случае вы можете остановить цепочку async
, позвонив по номеру Wait
.Но вам нужно внести некоторые изменения, как показано ниже:
public void TestAsync()
{
var task = handleSummaryOfWallets();//Just call the method which will return the Task<List<object>>.
task.Wait();//Call Wait on the task. This will hold the execution until complete execution is done.
var listOfBalances = task.Result;//Task is executed completely. Read the result.
}
Обратите внимание, что вызывающий метод больше не async
.Другое объяснение приведено в комментариях к коду.
Другая короткая альтернатива приведенному выше коду приведена ниже:
public void TestAsync()
{
var listOfBalances = handleSummaryOfWallets().Result;
}