2009-06-20 4 views
1

Хотелось бы, чтобы мой процесс cl.exe (процесс компилятора C++) работал со скоростью ниже обычного приоритета, так что мои потоки пользовательского интерфейса не затрагиваются. Я включил/MP builds для большинства своих проектов и хочу использовать преимущества всех процессоров, но не хочу, чтобы ящик был увяз и недоступен.Могут ли плагины Visual Studio получать уведомления о задачах/вызовах C++ build/CL для CL.EXE?

Соавтор написал утилиту, которая контролирует потоки и позволяет пользователям выбирать имена процессов для приостановки приоритетов, но мне было интересно, можно ли написать плагин для визуальной студии, который был уведомлен обо всех вызовах CL .exe, чтобы программно снизить приоритет.

Итак, возможно ли это? VS 2008 - C++ теперь строит.

ответ

1

У вас есть объект BuildEvents, который предоставляет DTE, он предназначен для запуска всех типов проектов, но его хорошая точка указания, чтобы увидеть, работает ли CL. (Есть несколько примеров того, как использовать его в Google Code Search).
Или (И это хакки, и я не знаю, если это сработает) вы можете написать заменитель CL.exe, который будет запускать фактический CL с низким/идеальным приоритетом и маршрутизировать все параметры к нему.

0

Хотя это не отвечает на ваш вопрос, я сделал то же, что и ваш коллега, - написал небольшую утилиту, которая снижает приоритет cl.exe, вы можете захватить здесь source code/binary.