public int AddTimeTask(Action <int> callback, double delay, KDTimeUnit timeUnit = KDTimeUnit.Millisecond, int count = 1)
    {
        if (timeUnit != KDTimeUnit.Millisecond)
        {
            switch (timeUnit)
            {
            case KDTimeUnit.Second:
                delay = delay * 1000;
                break;

            case KDTimeUnit.Minute:
                delay = delay * 1000 * 60;
                break;

            case KDTimeUnit.Hour:
                delay = delay * 1000 * 60 * 60;
                break;

            case KDTimeUnit.Day:
                delay = delay * 1000 * 60 * 60 * 24;
                break;

            default:
                LogInfo("Add Task TimeUnit Type Error...");
                break;
            }
        }
        int tid = GetTid();;

        nowTime = GetUTCMilliseconds();
        lock (lockTime) {
            tmpTimeLst.Add(new KDTimeTask(tid, callback, nowTime + delay, delay, count));
        }
        return(tid);
    }
    public bool ReplaceTimeTask(int tid, Action <int> callback, float delay, KDTimeUnit timeUnit = KDTimeUnit.Millisecond, int count = 1)
    {
        if (timeUnit != KDTimeUnit.Millisecond)
        {
            switch (timeUnit)
            {
            case KDTimeUnit.Second:
                delay = delay * 1000;
                break;

            case KDTimeUnit.Minute:
                delay = delay * 1000 * 60;
                break;

            case KDTimeUnit.Hour:
                delay = delay * 1000 * 60 * 60;
                break;

            case KDTimeUnit.Day:
                delay = delay * 1000 * 60 * 60 * 24;
                break;

            default:
                LogInfo("Replace Task TimeUnit Type Error...");
                break;
            }
        }
        nowTime = GetUTCMilliseconds();
        KDTimeTask newTask = new KDTimeTask(tid, callback, nowTime + delay, delay, count);

        bool isRep = false;

        for (int i = 0; i < taskTimeLst.Count; i++)
        {
            if (taskTimeLst[i].tid == tid)
            {
                taskTimeLst[i] = newTask;
                isRep          = true;
                break;
            }
        }

        if (!isRep)
        {
            for (int i = 0; i < tmpTimeLst.Count; i++)
            {
                if (tmpTimeLst[i].tid == tid)
                {
                    tmpTimeLst[i] = newTask;
                    isRep         = true;
                    break;
                }
            }
        }

        return(isRep);
    }
 public int AddTimeTask(Action <int> callback, double delay, KDTimeUnit timeUnit = KDTimeUnit.Millisecond, int count = 1)
 {
     return(pt.AddTimeTask(callback, delay, timeUnit, count));
 }