KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Somehow I cannot believe that I am the first one to run into that problem (and I don't want to believe that I am the only one stupid enough not to see a solution directly), but my search-fu was not strong enough. I regularly run into a situation, when I need to do a few time-consuming steps one after the other. The workflow looks like var data = DataGetter.GetData(); var processedData = DataProcessor.Process(data); var userDecision = DialogService.AskUserAbout(processedData); // ... I don't want to block the UI during each step, so every method does return immediately, and raises an event once it has finished. Now hilarity ensues, since the above code block mutates into DataGetter.Finished += (data) => { DataProcessor.Finished += (processedData) => { DialogService.Finished(userDecision) => { // .... } DialogService.AskUserAbout(processedData); } DataProcessor.Process(data); }; DataGetter.GetData(); This reads too much like Continuation-passing style for my taste, and there has to be a better way to structure this code. But how?
Tags (comma-separated)
Save Edits
Cancel