Jak mogę uruchomić obie te metody „w tym samym czasie” w .NET 4.5?

Mam metodę, która robi 2niezależny elementy logiki. Miałem nadzieję, że uda mi się ich obajw tym samym czasie .. i kontynuować dopiero po zakończeniu obu tych metod.

Próbowałem objąć głowęasync/await składnia, ale po prostu tego nie rozumiem.

Oto kod:

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;
}

Z powyższym kodem chcę powiedzieć: idź i weź wszystkie koty i jedzenie w tym samym czasie. Kiedy skończymy, zwróć nowyPewPew.

Jestem zdezorientowany, ponieważ nie jestem pewien, które klasy są powyżejasync lub zwróć aTaskitd. Wszystkie? tylko te dwa prywatne? Zgaduję, że muszę wykorzystaćTask.WaitAll(tasks) metoda, ale nie wiem, jak to zrobićUstawiać zadania do uruchomienia w tym samym czasie.

Sugestie, mili ludzie?

questionAnswers(5)

yourAnswerToTheQuestion