public static void Enqueue(string name, Action <object> work, object argument, double delaySeconds) { long earliest = Stopwatch.GetTimestamp() + TimeService.SecondsToTicks(delaySeconds); var djob = new Job() { Name = name, Work = work, Argument = argument }; lock (s_delayed) s_delayed.Enqueue(earliest, djob); }
public static Ulid Create(ref ulong rndState) { var time = s_timeOffset + TimeService.TicksToMilliSeconds(Stopwatch.GetTimestamp()); return(new Ulid(PRNG.NextUInt64(ref rndState), ((ulong)time << 16) | (PRNG.NextUInt64(ref rndState) & 0xFFFF))); }