public void Run() { _uiDispatcher.Dispatch(() => { _manager.RaiseTaskStarted(this, _state); Task.Factory.StartNew(s => { var result = _onWork(this, s); _uiDispatcher.Dispatch(() => { _onCompleted?.Invoke(result, s); _manager.RaiseTaskCompleted(this, _state); }); }, _state); }); }
public void Run() { uiDispatcher.Dispatch(() => { manager.RaiseTaskStarted(this, state); Task.Factory.StartNew(s => { var result = onWork(this, s); uiDispatcher.Dispatch(() => { if (onCompleted != null) { onCompleted(result, s); } manager.RaiseTaskCompleted(this, state); }); }, state); }); }