3
可能是一個菜鳥錯誤,但我得到了一些奇怪的東西。我試圖編織一個.NET性能計數器到應用程序中。性能計數器遞增不正常?
當我在我的平均性能計數器上調用incrementBy(value)
方法時,它也改變了我的基計數器的RawValue值。我檢查了變量名並認爲一切正確。
然後當我在我的基地櫃檯上撥打increment()
時,它會給avgcounter的原始值增加1,並增加基本計數器......增加侮辱傷害!
有沒有人見過這種行爲?對於正在發生的事情以及如何解決它的任何建議?
在代碼中,我使用兩個不同的計數器來測量我編寫的合併排序所花費的時間。我有一個即時計數器,用於排序和平均計數器。
Dim timePiece As New Stopwatch()
timePiece.Start()
MergeSort()
timePiece.Stop()
ElapsedCounter.RawValue = timePiece.ElapsedMilliseconds
AvgCounter.IncrementBy(timePiece.ElapsedMilliseconds)
AvgCounterBase.Increment()
發生什麼,我看到的是:
'Elapsed counter works as expected
'AvgCounter RawValue is 7, AvgCounterBase RawValue is also 7 before incrementing
AvgCounter.IncrementBy(value) 'AvgCounter.RV is 7+value, AvgCounterBase is 7+value AvgCounterBase.Increment() 'AvgCounter.RV is 7+value+1, AvgCounterBase is 7+value+1
我想我可能是錯的使用計數器,但爲什麼改變了平均的rawvalue似乎也改變rawvalue的基地?我不認爲這應該發生。
我不明白你期望發生什麼。你能否用具體的價值來澄清你的例子,以及你在每個陳述後期望的rawValue? – 2009-07-23 17:55:53
好吧,我編輯了這個問題。希望現在更清楚。感謝您的意見。 – jrsconfitto 2009-07-24 13:47:26