"One of the annoying things about delegates in .NET is that delegates with exactly the same parameters and return type are not compatible. Specifically, you cannot cast a delegate to a delegate of another type even if they have the same parameters and return type."

Concretely, in your case, FilterDelegate and Predicate<Process> are two different types. They have no relation to each other and cannot be cast one to the other.