コード例 #1
0
        public override IDisposable ScheduleDirect(IRunnable run, TimeSpan delay)
        {
            ScheduledRunnable sr = new ScheduledRunnable(run, null);

            IDisposable d = Task.Delay(delay).ContinueWith(t => sr.Run());
            sr.SetFuture(d);

            return sr;
        }
コード例 #2
0
        public override IDisposable ScheduleDirect(IRunnable run)
        {
            ScheduledRunnable sr = new ScheduledRunnable(run, null);

            IDisposable d = Task.Run(() => sr.Run());
            sr.SetFuture(d);

            return sr;
        }
コード例 #3
0
            public override IDisposable Schedule(IRunnable action)
            {
                ScheduledRunnable sr = new ScheduledRunnable(action, set);
                set.Add(sr);

                queue.Enqueue(sr);

                if (Interlocked.Increment(ref wip) == 1)
                {
                    Task.Run(() => drain());
                }

                return sr;
            }