2010-11-22 2 views
0

comment puis-je dire combien de temps a:comment détecter la durée d'un WebClient.DownloadData() prend pour compléter?

objWebClient.DownloadData(strURL) 

faut pour terminer?

je souhaite qu'il y ait une propriété qui contenait cette information, mais je ne pouvais pas trouver un ...

+0

Essayez-vous vraiment de prendre le temps de télécharger (dans ce cas, utilisez les 2 réponses ci-dessous) ou essayez-vous d'obtenir un temps de progression (y compris les xxx minutes restantes). – Jamiec

Répondre

2

il suffit d'utiliser un Stopwatch:

Stopwatch sw = Stopwatch.StartNew(); 
webClient.DownloadData(...); 
sw.Stop(); 
Console.WriteLine("Download took {0}ms", sw.ElapsedMilliseconds); 

Si vous utilisez des API synchrones, il est vraiment facile. C'est plus compliqué avec les API asynchrones, mais il vous suffit de passer le chronomètre dans votre état. Encore une fois, c'est assez facile si vous utilisez une méthode anonyme ou une expression lambda pour votre gestionnaire d'événements, car il peut capturer la variable locale.

2

Utilisez la classe StopWatch - démarrer avant l'appel et l'arrêter après l'appel:

Stopwatch stopWatch = new Stopwatch(); 
stopWatch.Start(); 

objWebClient.DownloadData(strURL) 

stopWatch.Stop(); 
TimeSpan ts = stopWatch.Elapsed; // ts now holds the duration 
Questions connexes