c# asynchrone sans attendre

Dans la documentation ici: http://msdn.microsoft.com/en-us/library/hh191443.aspx il indique que:

Si une méthode asynchrone n'utilisez pas attendre de l'opérateur à marquer d'une suspension
point, la méthode s'exécute comme une méthode synchrone, en dépit de la
async modificateur. Le compilateur émet un avertissement pour ces méthodes.

Je crois que c'est l'avertissement:

Cette méthode async le manque d '"attendre" opérateurs et exécuté de manière synchrone.
Pensez à utiliser le 'attendre d' " opérateur d'attendre de non-blocage des appels d'API,
ou 'attendent Tâche.Exécuter (...) " pour faire lié au PROCESSEUR de travailler sur un thread d'arrière-plan.

Puis, dans un autre, le lien référencé, http://msdn.microsoft.com/en-us/library/windows/apps/hh994635.aspx, l'exemple qu'il montre est comme suit:

public class Example
{
    //...
    private async void NextMove_Click(object sender, RoutedEventArgs e)
    {
        await Task.Run(() => ComputeNextMove());
        //Update the UI with results
    }

    private async Task ComputeNextMove()
    {
        //...
    }
    //...
}

Ici, je vais assumer que ComputeNextMove est fondamentalement une méthode synchrone, lui-même, de ne pas appeler vous attendent. Que puis semble contredire l'émission d'un avertissement du compilateur (sauf si c'est un mauvais exemple...)

Si je ne suis pas d'appeler un .net méthode Async à la FIN de mon appel asynchrone de la pile, comme HttpClient.GetStringAsync et je tiens à le mettre en œuvre concrète "longue course" synchrone logique, est-il un plus bonne façon de le faire?

Peut-être que mon hypothèse est incorrecte, et ComputeNextMove pourrait être déclaré comme private void ComputeNextMove() qui donnerait pas d'avertissements.

Ceci est source de confusion. Vous appelez Task.Run(Func<Task>), qui attend le retour de tâche.
Le Task elle-même appelle await.
"Si le code a async sans attendre, il est synchrone" - montre de code avec les deux: "je suppose que c'est synchrone." Je suis perdu.

OriginalL'auteur Novox | 2014-02-11