示例#1
0
        private void AddCore(Future<T> future)
        {
            if (null != FutureStarted)
            {
                FutureStarted(this, DataEventArgs.Create(future));
            }

            m_pendingAddList.Add(future);
            future.AddCompletedCallback(m_context.BindAsPost<Future<T>>(x => OnAddCompleted(x)));
        }
示例#2
0
        private void UpdateCore(T originalValue, Future<T> future)
        {
            if (null != FutureStarted)
            {
                FutureStarted(this, DataEventArgs.Create(future));
            }

            m_pendingUpdateList.Add(Tuple.Create(originalValue, future));
            future.AddCompletedCallback(m_context.BindAsPost<Future<T>>(OnUpdateCompleted));
        }
示例#3
0
        internal FutureWatcher(SynchronizationContext context, Future future)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (future == null)
            {
                throw new ArgumentNullException("future");
            }

            m_context = context;
            m_future  = future;
            m_future.AddCompletedCallback(OnWatchableFutureCompleted);
            m_state = State.Waiting;
        }