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; }
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; }