示例#1
0
        private void ExecuteSignalAsync(IGridSignal signal)
        {
            IPromise p = null;

            if (signal is AddMovieToGridSignal addMovieToGridSignal)
            {
                p = AddMovieToGrid(addMovieToGridSignal.Model);
            }
            else if (signal is RemoveMovieFromGridSignal removeMovieFromGridSignal)
            {
                p = RemoveMovieFromGrid(removeMovieFromGridSignal);
            }
            else
            {
                Debug.LogException(new NotImplementedException("Add Clear Queue case."));
            }

            var tmpSignal = signal;

            p.Done(() =>
            {
                lock (_gridSignalsQueue)
                {
                    _gridSignalsQueue.Remove(tmpSignal);
                }
                CheckAndExecuteQueue();
            });
        }
示例#2
0
        private void EnqueueSignal(IGridSignal signal)
        {
            lock (_gridSignalsQueue)
            {
                _gridSignalsQueue.Add(signal);

                if (_gridSignalsQueue.Count == 1)
                {
                    ExecuteSignalAsync(signal);
                }
            }
        }
示例#3
0
 private void DeQueueSignal(IGridSignal signal)
 {
 }