ลองจินตนาการว่าเรามีการวัดอย่างง่ายโดยใช้ 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?
}
ตาม MSDN:
ในสถานการณ์นาฬิกาจับเวลาทั่วไปคุณจะเรียกใช้เมธอด Start จากนั้นเรียกเมธอด Stopจากนั้นตรวจสอบเวลาที่ผ่านไปโดยใช้คุณสมบัติ Elapsed
ฉันไม่แน่ใจว่าควรเรียกวิธีนี้หรือไม่เมื่อฉันไม่สนใจอินสแตนซ์ตัวจับเวลาอีกต่อไป ฉันควร "ล้าง" โดยใช้Stop
วิธีการหรือไม่?
แก้ไข
โปรดทราบว่า Logger.Log (.. ) ไม่มีค่าใช้จ่ายใด ๆ เนื่องจากtimer.Elapsed
ถูกอ่านก่อนบันทึกของคนตัดไม้
Stop
วิธีการป้องกันไม่ให้คุณจากความผิดพลาดประมาทตัวอย่างเช่นถ้าคุณกำลังประเมินElapsed
คุณสมบัติหลายครั้ง