Imaginons que nous ayons des mesures simples en utilisant Stopwatch
public void DoWork()
{
var timer = Stopwatch.StartNew();
// some hard work
Logger.Log("Time elapsed: {0}", timer.Elapsed);
timer.Stop(); // Do I need to call this?
}
Selon MSDN:
Dans un scénario classique de Chronomètre, vous appelez la méthode Start, puis appelez finalement la méthode Stop , puis vous vérifiez le temps écoulé à l'aide de la propriété Elapsed.
Je ne sais pas si je devrais appeler cette méthode lorsque je ne suis plus intéressé par l'instance de minuterie. Dois-je "éclaircir" en utilisant la Stop
méthode?
ÉDITER
Gardez à l'esprit que Logger.Log (..) ne coûte rien car il timer.Elapsed
est lu avant les journaux de l'enregistreur.
Stop
méthode vous évite d'erreurs imprudentes, par exemple si vous évaluez laElapsed
propriété plusieurs fois.Stop
ferait une différence? Vous ne pouvez pas utiliser la valeur de toute façonRéponses:
Non, vous n'avez pas besoin de l'arrêter.
Stop()
arrête juste de suivre le temps écoulé. Cela ne libère aucune ressource.la source
Non, il n'est pas nécessaire de l'arrêter ou de le nettoyer.
Stopwatch
n'utilise aucune ressource non gérée (si vous y avez penséIDisposable
). Il n'utilise en fait aucune ressource du tout (sauf la mémoire utilisée par l'objet lui-même, bien sûr)! Il ne consomme pas non plus de CPU lors de la mesure du temps écoulé!Dans Windows implémentations de .NET (Framework complet .NET, Mono, .NET de base), il appelle simplement l'
QueryPerformanceCounter()
API Windows en cas de besoin (surStart()
etStop()
et lors de la lectureElapsed
) pour récupérer un horodatage à haute résolution.Dans les implémentations Linux de Mono et .NET Core, il utilise une
clock_gettime
fonction pour récupérer une valeur de temps croissante monotone.À tous ceux qui ont une réelle curiosité sur les détails de la mise en œuvre: lisez cet article .
la source
Je pense que Stop est utile si vous souhaitez réutiliser la valeur Elapsed.
la source
Si votre code n'a pas besoin de calculer, alors inutile d'utiliser Stop ().
la source