gpt4 book ai didi

c# - 使用(而非滥用)ContinueWith

转载 作者:太空狗 更新时间:2023-10-29 20:02:41 24 4
gpt4 key购买 nike

假设我们有 2 个辅助函数:

void Step1(); // Maybe long.
void Step2(); // Might be short clean up of step 1.

我经常看到:

Task.Run(() => Step1()).ContinueWith(t => Step2());

这会创建2 个任务,这些任务在系列 中运行。时间:

Task.Run(() => { Step1(); Step2(); });

这会创建一个单个任务,它运行系列 中的 2 个函数,这似乎是一个更简单的选择。

是否有常识指南可用于确定何时比更简单的方法真正需要继续?
上述示例没有异常处理 - 异常处理对这些准则有多大影响?

最佳答案

Are there common sense guidelines that can be applied to determine when a continuation is actaully required over the simpler approach?

ContinueWith 使您能够仅在特定条件下通过 TaskContinutationOptions 调用 Step2 ,例如 OnlyOnCanceled OnlyOnFaultedOnlyOnRanToCompletion 等。这样,您就可以编写适合每种情况的工作流程。

您也可以使用单个 Task.Run 和一个 try-catch 来完成此操作,但这可能更需要您维护。

就我个人而言,我尽量避免使用 ContinueWith,因为我发现 async-await 不那么冗长,而且更像同步。我宁愿在 try-catchawait

关于c# - 使用(而非滥用)ContinueWith,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32091109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com