You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建带有返回值的延迟任务?

如何创建带有返回值的延迟任务?

嘿,这个问题其实挺容易解决的,我给你两种实用的写法,你可以选顺手的来用:

方法一:用async/await(最推荐,代码清晰易读)

直接把方法标记为async,先等待延迟完成,然后返回true就行——编译器会自动帮你把返回值包装成Task<bool>,完全适配新的抽象类要求,而且还能正确响应传入的取消令牌:

public override async Task<bool> Start(CancellationToken cancellationToken)
{
    await Task.Delay(1000, cancellationToken);
    return true;
}

这种写法就像写同步代码一样,逻辑一目了然,后续如果要加其他逻辑也特别好改。

方法二:用ContinueWith链式调用

要是你不想用async语法,也可以用ContinueWith在延迟任务完成后返回指定值,不过可读性会稍差一点:

public override Task<bool> Start(CancellationToken cancellationToken)
{
    return Task.Delay(1000, cancellationToken)
               .ContinueWith(_ => true, cancellationToken);
}

记得把取消令牌也传给ContinueWith,这样如果延迟过程中令牌触发取消,整个任务也能正确响应。

备注:内容来源于stack exchange,提问作者Mr. Boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:23:03