예제 #1
0
                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);
                }
예제 #2
0
 public void OnSubscribe(IDisposable d)
 {
     all.Add(d);
 }