void RaiseDoWorkEventFromAsyncContext(DoWorkEventArgs eventArgs) { Delegate[] targets; lock (_doWorkLock) { targets = _doWork.GetInvocationList(); } foreach (DoWorkEventHandler handler in targets) { handler(this, eventArgs); } }