using System; using System.Collections.Generic; using System.Text; namespace Nuclex.Support.Tracking { /// Base class for observable operations running in the background public abstract class Operation : Progression { /// Executes the operation public abstract void Start(); /// /// Executes the operation synchronously, blocking the calling thread /// public virtual void Execute() { Start(); WaitHandle.WaitOne(); } } } // namespace Nuclex.Support.Tracking