示例#1
0
        public void Execute()
        {
            while (!earlier.isCompleted)
            {
                lock (this) {
                    Monitor.Wait(this, 1000);
                }
            }

            view.Execute();
            isCompleted = true;

            if (later != null)
            {
                lock (later)
                {
                    Monitor.PulseAll(later);
                }
            }
            earlier = null;
            later   = null;
        }
示例#2
0
        public void Execute()
        {
            while (!_earlier._isCompleted)
            {
                lock (this) {
                    Monitor.Wait(this, 1000);
                }
            }

            _view.Execute();
            _isCompleted = true;

            if (_later != null)
            {
                lock (_later)
                {
                    Monitor.PulseAll(_later);
                }
            }
            _earlier = null;
            _later   = null;
        }