c #: Should I reuse a predicate for several IEnumerable checks?

In a long-running Windows Service, I have a custom thread group administrator that has a loop that continually searches for a pair of inactive thread lists.

Given the multiple uses of the same predicate, is there any benefit in saving the lambda as Func?
How could the recommendation change based on the number of sub-processes with which this code interacts, or when is it necessary for the Func to switch to other methods to help with the work?

while (_isRunning)
... sleeps a little to avoid beatings
while (_threads.Any (t => t.IsIdle) || _autreThreads.Any (t => t.IsIdle)
var assignee = _threads.FirstOrDefault (t => t.IsIdle) ?? _autreThreads.FirstOrDefault (t => t.IsIdle);
... give them something to do

Instead of each of the lambdas, you could use the following, defined once outside the loop, to reuse it.

Func isIdleCondition = t => t.IsIdle;