Exemple #1
0
        public static void SetDefaultFactory(PromiseBackend backend)
        {
            lock (_syncRoot)
            {
                if (_factory == null)
                {
                    _factory = new PromiseFactory(backend);
                    _backend = null;
                    if (backend == PromiseBackend.Default)
                    {
                        _backendType = PromiseFactory.DefaultBackend;
                    }
                    else
                    {
                        _backendType = backend;
                    }
                }
                else if (_backend != null)
                {
                    _factory.Dispose();
                    _factory = new PromiseFactory(backend);
                    _backend = null;

                    if (backend == PromiseBackend.Default)
                    {
                        _backendType = PromiseFactory.DefaultBackend;
                    }
                    else
                    {
                        _backendType = backend;
                    }
                }
                else if (_backendType != backend)
                {
                    _factory.Dispose();
                    _factory = new PromiseFactory(backend);

                    if (backend == PromiseBackend.Default)
                    {
                        _backendType = PromiseFactory.DefaultBackend;
                    }
                    else
                    {
                        _backendType = backend;
                    }
                }
            }
        }
Exemple #2
0
        private static IBackend CreateBackend(PromiseBackend backend)
        {
            switch (backend)
            {
            case PromiseBackend.Default:
                return(CreateBackend(DefaultBackend));

            case PromiseBackend.DotNet:
                return(new TplBackend());

            case PromiseBackend.MooThreadPool:
                return(new MooBackend());

            default:
                throw new InvalidProgramException("Unknown backend type: " + backend.ToString());
            }
        }
Exemple #3
0
 public PromiseFactory(PromiseBackend backend)
     : this(CreateBackend(backend))
 {
 }
Exemple #4
0
 public static PromiseFactory CreateFactory(PromiseBackend backend)
 {
     return(new PromiseFactory(backend));
 }