public IDisposable Schedule(Action action) { ScheduledAction sa = new ScheduledAction(action, tasks); if (tasks.Add(sa)) { queue.Enqueue(sa); if (Interlocked.Increment(ref wip) == 1) { Task.Run(() => Run()); } return(sa); } return(EmptyDisposable.Instance); }
public void OnSubscribe(IDisposable d) { all.Add(d); }