Jen*_*ens 14 c# events coding-style
不知怎的,我无法相信我是第一个遇到这个问题的人(而且我不想相信我是唯一一个不能直接看到解决方案的傻瓜),但我的搜索功能还不够强大.
当我需要一个接一个地执行一些耗时的步骤时,我经常遇到这种情况.工作流程看起来像
var data = DataGetter.GetData();
var processedData = DataProcessor.Process(data);
var userDecision = DialogService.AskUserAbout(processedData);
// ...
Run Code Online (Sandbox Code Playgroud)
我不希望在每个步骤中阻止UI,因此每个方法都会立即返回,并在完成后引发一个事件.现在欢闹随之而来,因为上面的代码块变异了
DataGetter.Finished += (data) =>
{
DataProcessor.Finished += (processedData) =>
{
DialogService.Finished(userDecision) =>
{
// ....
}
DialogService.AskUserAbout(processedData);
}
DataProcessor.Process(data);
};
DataGetter.GetData();
Run Code Online (Sandbox Code Playgroud)
这听起来像是我的品味延续传递风格,并且必须有更好的方法来构造这个代码.但是怎么样?