virtual protected void Finished() { _time_taken = DateTime.UtcNow - _start; _done = true; if(_finished != null) { _finished(this, EventArgs.Empty); } }