public ObjectCacheBase() { Key = NextKey; // 构造的时候,会放进缓存先。所以,构造的时刻就是 释放的时刻 IsReleased = true; ReleasedTimePoint = TimeUtils.GetTimeStampSeconds(); }
public BTTimerTask(float interval, AbstractCallback callback) { mCallback = callback; mCurrentSeconds = TimeUtils.GetTimeStampSeconds(); mInterval = interval; mNextSeconds = mCurrentSeconds + mInterval; isStop = true; }
private void Start() { if (isStop) { isStop = false; mCurrentSeconds = TimeUtils.GetTimeStampSeconds(); mNextSeconds = mCurrentSeconds + mInterval; } }
// 这个只能通过 ObjectPools.Instance.Release --> ObjectPool.Release -> Release 过来 public void Released() { if (!IsReleased) { Clear(); ReleasedTimePoint = TimeUtils.GetTimeStampSeconds();// Time.realtimeSinceStartup; IsReleased = true; } }
public bool Process <T>(T obj) { Start(); if (TimeUtils.GetTimeStampSeconds() > mNextSeconds) { if (mCallback != null) { mCallback.Run(); } Stop(); return(true); } return(false); }
public bool IsExpired(float life) { return(TimeUtils.GetTimeStampSeconds() - ReleasedTimePoint >= life); }