这似乎是工作,但我抓我的头试图找到内存泄漏,我不是那种东西非常好:-(我需要免费()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