Если у вас есть двухъядерный компьютер (что, я полагаю, у вас есть), самое большее, что вы могли бы надеяться получить в одном потоке, это 50% загрузки ЦП.
Чтобы получить 90% загрузки ЦП, вам, скорее всего, понадобится провести вычисления. Это может быть очень просто или очень сложно, в зависимости от характера алгоритма, который вы хотите использовать.
Если вы можете разбить ваш рабочий набор на несколько групп, я бы рекомендовал рассмотреть возможность использования ThreadPool или, возможно, даже Task Parallel Library , в зависимости от времени выпуска.