Najbardziej skuteczny sposób na znalezienie wszystkich plików exe na dysku za pomocą C #?

Jaki jest najbardziej skuteczny sposób na znalezienie wszystkich plików exe na dysku za pomocą C #?

Zostanie to wykonane w tle wątku w programie, więc użycie dysku powinno być tak małe, jak to możliwe.