c # – Should I reuse a predicate for multiple IEnumerable controls

In a long-running Windows service, I have a custom thread pool manager that has a loop that continually examines some lists of inactive threads.

Given the multiple uses of the same predicate, is there any benefit to saving lambda as a Func?
How could the recommendation change depending on how many threads this code interacts with or when the Func should eventually be passed to other methods to make the job easier?

while (_isRunning)
{
... sleep a bit to avoid blows
while (_threads.Any (t => t.IsIdle) || _otherThreads.Any (t => t.IsIdle)
{
Assigned var = _threads.FirstOrDefault (t => t.IsIdle) ?? _otherThreads.FirstOrDefault (t => t.IsIdle);
... give them something to do
}
}

Instead of each lambda, I could use the following, set once on the outside for the loop, to reuse it.

Func isIdleCondition = t => t.IsIdle;