如何在循环中使用 Func 或 Action 而不是局部变量?

How to use a Func or Action in a loop instead of local variables?

我正在重构一些旧代码,我有以下循环:

while (true)
{
    if (stopLoop.IsStopRequested || ct.IsCancellationRequested)
    {
        break;
    }

    if (worker.IsPaused)
    {
        Thread.Sleep(delay);
        continue;
    }

    if (wait)
    {
        Thread.Sleep(delay);
        wait= false;
        continue;
    }

    //much more code here...
}

我想将 isPausedwait 合并为一个块,并且正在考虑使用 Func

在这种特殊情况下这有意义吗?这样的 Func 循环会怎样?

你能用一个if条件替换它吗?

if (wait || worker.IsPaused)
{
    Thread.Sleep(delay);
    wait = false;
    continue;
}

如果 waittrue,您总是将其设置为 false。如果它是 false,您将再次将其设置为 false