Muss ich die Stoppuhr anhalten, wenn die umschließende Methode bald zurückkehrt?

8
___ tag123garbagecollection ___ Garbage Collection (GC) ist eine Form der automatischen Speicherverwaltung, die versucht, Speichermüll oder Speicher zurückzugewinnen, die von Objekten belegt sind, die nicht mehr vom Programm verwendet werden. ___ tag123c40 ___ C # 4.0 führte Funktionen wie dynamische Objekte, COM-Interoperabilitätsverbesserungen, generische Co- und Contravarianz, optionale und benannte Parameter ein. Verwenden Sie dieses Tag, wenn sich Ihre Frage speziell auf C # 4.0-spezifische Features bezieht. Das C # -Tag sollte verwendet werden, wenn Ihre Frage nicht für C # 4.0-Funktionen spezifisch ist. ___ qstnhdr ___ Muss ich die Stoppuhr anhalten, wenn die umschließende Methode bald zurückkehrt? ___ tag123stopwatch ___ Die Klasse System.Diagnostics.Stopwatch in .Net, die zur genauen Messung der verstrichenen Zeit verwendet wird. ___ answer16134419 ___

Nein, ich habe diesen schnellen Test gemacht und es scheint, dass sobald der GC läuft, die Stoppuhr zerstört ist. (Fühlen Sie sich frei, den Code zu korrigieren)

%Vor%

Die Ausgabe ist t.Stop() , wenn Stopwatch aufgerufen wird. Natürlich ist es unwahrscheinlich, dass Sie in einem echten Programm t explizit aufrufen, aber dies zeigt, dass das Stoppuhr-Objekt außerhalb des Bereichs der Methode zerstört wird, selbst wenn DoTimeIntensiveOperation nicht aufgerufen wurde.

    
___
Superbest 21.04.2013, 17:45
quelle

1 Antwort

8

Nein, ich habe diesen schnellen Test gemacht und es scheint, dass sobald der GC läuft, die Stoppuhr zerstört ist. (Fühlen Sie sich frei, den Code zu korrigieren)

%Vor%

Die Ausgabe ist Destroyed , wenn GC.Collect aufgerufen wird. Natürlich ist es unwahrscheinlich, dass Sie in einem echten Programm GC.Collect explizit aufrufen, aber dies zeigt, dass das Stoppuhr-Objekt außerhalb des Bereichs der Methode zerstört wird, selbst wenn Stop nicht aufgerufen wurde.

    
keyboardP 21.04.2013, 18:00
quelle