У меня есть метод, который делает две независимые части логики. Я надеялся, что я смогу запустить их обоих одновременно... и только потом, когда оба этих дочерних метода завершатся.
Я пытался разглядеть синтаксис async/await
, но я просто не понимаю.
Здесь код:
public PewPew SomeMethod(Foo foo)
{
var cats = GetAllTheCats(foo);
var food = GetAllTheFood(foo);
return new PewPew
{
Cats = cats,
Food = food
};
}
private IList<Cat> GetAllTheCats(Foo foo)
{
// Do stuff, like hit the Db, spin around, dance, jump, etc...
// It all takes some time.
return cats;
}
private IList<Food> GetAllTheFood(Foo foo)
{
// Do more stuff, like hit the Db, nom nom noms...
// It all takes some time.
return food;
}
Итак, с этим кодом выше, я хочу сказать: идите и получите всех кошек и продуктов питания в одно и то же время. Как только мы закончим, вернем новый PewPew
.
Я смущен, потому что я не уверен, какие классы выше async
или возвращают Task
и т.д. Все из них? просто две частные? Я также предполагаю, что мне нужно использовать метод Task.WaitAll(tasks)
, но я не уверен, как настроить задачи для запуска в одно и то же время.
Предложения, добрые люди?