Как заставить программы из файла подкачки, когда ресурсоемкий пакет заканчивается? - PullRequest
1 голос
/ 23 марта 2010

Мы используем рабочие столы сотрудников для симуляции загрузки процессора в течение ночи. Рабочие столы работают под управлением Windows - обычно Windows XP. Сотрудники не выходят из системы, они просто блокируют рабочие столы, выключают свои мониторы и уходят.

У каждого сотрудника есть файл конфигурации, который он может редактировать, чтобы указать, когда он, скорее всего, находится вне офиса. Когда наступает это время, фоновая программа получает данные для моделирования с сервера, порождает рабочие процессы, наблюдает за ними, получает результаты и отправляет их на сервер. Когда время, указанное сотрудником, истекает, моделирование прекращается, и обычному рабочему столу не мешают.

Проблема в том, что моделирование занимает много памяти, поэтому, когда рабочие процессы запускаются, они заставляют другие программы в файл подкачки. Поэтому, когда сотрудник приходит ко всем оставленным им программам, они медлительны и медленны, пока не откроют их одну за другой, чтобы они не отвалились.

Есть ли способ, которым программа может принудительно вытеснить другие программы из файла подкачки, когда она останавливает симуляцию, чтобы они снова работали гладко?

1 Ответ

2 голосов
/ 23 марта 2010

Циклически перебирайте системные и пользовательские процессы, начиная с того, который использует больше всего памяти (кроме фонового приложения), или того, который больше всего используется сотрудником, и отправляйте процессу сообщение WM_ACTIVATEAPP. Это должно иметь тот же эффект, что и «щелчок» по значку окна приложения указанного процесса на панели задач.

...