gpt4 book ai didi

c# - 我如何在 C# 中编写一个方法,一旦条件为真就返回?

转载 作者:行者123 更新时间:2023-11-30 21:13:56 25 4
gpt4 key购买 nike

我有一个方法,我想在某些内部条件为真时返回任务并完成任务。所以代码是:

public Task<Result> Method(int numberOfAggregats){
return new Task<Result>(() => "return result once
aggregated information > numberOfAggregates");
}

有没有什么方法可以做到这一点,而不会出现吃掉所有 cpu 或 Thread.Sleep 的循环?

更多信息:我有一个类(class),其目的是将通过 wcf 查询进入服务器的信息聚合起来。这是包含“方法”方法的类。此方法由 UI 以及需要聚合信息的后台工作调用。

到目前为止,我们一直在将回调操作传递到方法中,一旦所有信息都存在,就会调用该方法。返回 Task 背后的想法是摆脱回调,因为它们会使依赖模块中的代码复杂化。

最佳答案

使用AutoResetEvent :

System.Threading.AutoResetEvent _notifier = new AutoResetEvent(false);

  • 在等待任务调用 _notifier.WaitOne(); 因此它将阻塞直到收到信号。

  • 内部条件变为真时,调用_notifier.Set(); 通知等待任务完成。

关于c# - 我如何在 C# 中编写一个方法,一旦条件为真就返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529209/

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