public void SendRequestAsync(object key) { if (_requests.ContainsKey(key)) { return; } var firstAction = new SampleAction("First"); ActionBase twoStepAction = firstAction.ContinueWith(() => new SampleAction("Second")); _requests[key] = twoStepAction; twoStepAction.ExecuteAsync(); }