Beispiel #1
0
        public IPromise <T> Create <T>(Func <IPromise <T> > action, PromisePriority priority)
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("PromiseFactory");
            }

            switch (priority)
            {
            case PromisePriority.Normal:
                return(new NormalPromise <T>(this, _taskFactory, _taskFactory.Create(() => PromiseHelpers.ConvertPromiseToTaskResult <T>(_taskFactory, action()))));

            case PromisePriority.Immediate:
                return(new NormalPromise <T>(this, _taskFactory, _taskFactory.CreateImmediately(() => PromiseHelpers.ConvertPromiseToTaskResult <T>(_taskFactory, action()))));

            default:
                return(new NormalPromise <T>(this, _taskFactory, _taskFactory.Create(() => PromiseHelpers.ConvertPromiseToTaskResult <T>(_taskFactory, action()), (int)priority)));
            }
        }
Beispiel #2
0
        public IPromise <T> SetTimeout <T>(int delay, Func <IPromise <T> > action, PromisePriority priority)
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("PromiseFactory");
            }

            switch (priority)
            {
            case PromisePriority.Normal:
                return(new NormalPromise <T>(this, _taskFactory, _taskFactory.BeginFuture(Environment.TickCount + delay, () => PromiseHelpers.ConvertPromiseToTaskResult(_taskFactory, action()))));

            default:
                return(new NormalPromise <T>(this, _taskFactory, _taskFactory.BeginFuture(Environment.TickCount + delay, () => PromiseHelpers.ConvertPromiseToTaskResult(_taskFactory, action()), (int)priority)));
            }
        }