récemment expérimenté avec async et attendre l'utilisation de C#. Ceci est mon codeCombien coûte C# Async et attendre
private async void button1_Click(object sender, EventArgs e)
{
textBox1.Text = string.Empty;
var client = new WebClient();
var sw = Stopwatch.StartNew();
var downloadStringTask = client.DownloadStringTaskAsync("http://www.google.com");
textBox1.Text += "Downloading string async "+sw.ElapsedMilliseconds;
sw.Restart();
await downloadStringTask;
textBox1.Text += Environment.NewLine + "Downloaded "+sw.ElapsedMilliseconds;
sw.Stop();
}
et cela l'im sortie obtenir dans TextBox1.Text
Downloading string async 5698
Downloaded 666
cela signifie que l'appel de la DownloadStringTaskAsync()
prend autour 5.6 Seconds
pour exécuter où que le téléchargement réel prend <1 second
. Lorsque la raison de cette méthode est d'utiliser est de sauvegarder les ressources Thread.
Si cela est vrai, existe-t-il un cas où cette méthode de classe WebClient devrait être utilisée? Ou im juste penser en termes totalement incorrects?
Hm, mesurer une seule fois peut entraîner des chiffres trompeurs – Patrick
@Patrick je voulais utiliser plus tard dans mon application web dans laquelle le contrôleur est créé à chaque fois –
Ce n'est pas seulement le temps de télécharger les données, mais aussi le temps dans la résolution du DNS et le temps requis pour le premier téléchargement. Je suggère que vous devriez essayer de faire un autre appel. Cela donnera un résultat différent car cette fois-ci, le DNS est déjà résolu et mis en cache et la page est également mise en cache. –