public OnceCallbackData RequestOneTimeCallbackAtTime(DateTime wantedTime, OnceTimeCallbackDelegate callback)
        {
            var data = new OnceCallbackData()
            {
                callback = callback, time = wantedTime
            };

            if (wantedTime <= Time)
            {
                callback(Time);
            }
            else
            {
                OnceTimeCallbacksAtTime.Add(data);
                OnceTimeCallbacksAtTime.Sort();
            }
            return(data);
        }
 public bool StopOneTimeCallback(OnceCallbackData data)
 {
     return(OnceTimeCallbacksAtTime.Remove(data));
 }