public virtual void AsyncExecute() { if ((AsyncCompleted != null) && (Completed != null)) { isAsync = true; Completed.BeginInvoke(this, EventArgs.Empty, AsyncCompleted, null); } Execute(); isAsync = false; }