Devez-vous mettre à la Tâche.Exécuter dans une méthode pour le rendre asynchrone?

J'essaie de comprendre async vous attendent dans la forme la plus simple. Je veux créer une méthode très simple qui ajoute deux nombres pour les besoins de cet exemple, accordé, il n'est pas temps de traitement à tous, c'est juste une question de formulation d'un exemple ici.

Exemple 1

private async Task DoWork1Async()
{
    int result = 1 + 2;
}

Exemple 2

private async Task DoWork2Async()
{
    Task.Run( () =>
    {
        int result = 1 + 2;
    });
}

Si j'attends DoWork1Async() le code est exécuté de manière synchrone ou asynchrone?

Ai-je besoin d'envelopper le code de synchronisation avec Task.Run pour rendre la méthode awaitable ET asynchrone afin de ne pas bloquer le thread d'INTERFACE utilisateur?

Je suis en train de voir si ma méthode est un Task ou retourne Task<T> dois-je placer le code avec Task.Run pour le rendre asynchrone.

Question stupide, mais je suis sûr que je voir des exemples sur le net où les gens sont en attente de code qui n'a rien asynchrone à l'intérieur et n'est pas enroulé dans un Task.Run ou StartNew.

  • N'est pas votre premier extrait de vous donner tous les avertissements?
InformationsquelleAutor Neal | 2013-06-15