這似乎是工作,但我抓我的頭試圖找到內存泄漏,我不是那種東西非常好:-(我需要免費()TDateTime嗎?
const UNIX_START_DATE: TDateTime = 25569.0;
function UnixToDateTime(USec: Longint): TDateTime;
begin
Result := (Usec/86400) + UNIX_START_DATE;
end;
我不是實際調用TDateTime.Create()
- 不過是編譯器(這意味着我將不得不釋放它soemwhere)?或者,由於TDateTime
是bascially只是一個douuble,是編譯器只是推棧上分配給調用者?
TDateTime字段更有可能泄漏 –
「TDateTime基本上只是一個雙倍」 - 這就是答案。這是「雙」,你應該像對待「雙」一樣對待它。順便說一句,如果你沒有特別指出,那麼你就不能釋放它。 UNIX_START_DATE.Free是否可以編譯? –
+1 @ Arioch'The - 是的,它編譯,運行並做它應該做的。我只是在這裏抓着吸管,試圖找到泄漏。除了TDateTime有一個構造函數(我沒有檢查 - 是否加倍?)之外,我甚至都不會問這個問題,我在很長一段時間內縮小了內存不足異常,並且在定時器終止時fn()被定期調用。我只是想知道。 – Mawg