Wyobraźmy sobie, że mamy proste pomiary przy użyciu 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?
}
Według MSDN:
W typowym scenariuszu Stopwatch wywołujesz metodę Start, a następnie ostatecznie wywołujesz metodę Stop , a następnie sprawdzasz upływający czas przy użyciu właściwości Elapsed.
Nie jestem pewien, czy powinienem wywołać tę metodę, gdy nie jestem już zainteresowany wystąpieniem timera. Czy powinienem "wyczyścić" za pomocą Stop
metody?
EDYTOWAĆ
Należy pamiętać, że Logger.Log (..) nic nie kosztuje, ponieważ timer.Elapsed
jest odczytywany, zanim rejestrator się zaloguje.
Stop
metoda uniemożliwia beztroskich błędów, na przykład, jeśli jesteś ocenyElapsed
własności wielokrotnie.