gpt4 book ai didi

c# - 架构问题

转载 作者:太空狗 更新时间:2023-10-30 01:09:36 24 4
gpt4 key购买 nike

我想做一个方法来取代这个-

 for (var i = 0; i < seconds; i++)
{
...... // code that should run every second

Thread.Sleep(1000);
}

所以我写了下面的方法:

  public static void DoEverySecond(int seconds, Action action)
{
for (var i = 0; i < seconds; i++)
{
action.Invoke();
Thread.Sleep(1000);
}
}

现在每当我想每秒做点什么时,我都可以调用 -

 HelperClass.DoEverySecond(5, () =>
{
Console.Write("Hellow")
});

问题是当 Action 包含返回时,循环不会停止。它只是从 Action 中退出并继续下一次迭代。

  HelperClass.DoEverySecond(5, () =>
{
return;
});

最佳答案

你有没有考虑过Func而不是 Action,然后将您的代码更改为类似以下内容:

  public static void DoEverySecond(int seconds, Func<bool> action)
{
for (var i = 0; i < seconds; i++)
{
if(!action.Invoke())
{
return;
}
Thread.Sleep(1000);
}
}

如果你的循环应该中断,那么让你的函数返回 false

关于c# - 架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355227/

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