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



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

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

最新更新