Рабочее множество приложения обрезается свернутое окно верхнего уровня, его

Переводы статьи Переводы статьи
Код статьи: 293215 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

Когда приложение элемента верхнего уровня окно свернуто доСвернутькоманды из егоSystemменю или щелкните егоСвернутьКнопка, операционная система монтажа рабочего множества для процесса. Это делается для освобождения памяти для приложений на передний план. Из-за фильтрации по ролям, процесс может наблюдаться значительно затрудняет производительности из-за его страниц памяти четырехстороннем обратно в оперативную ПАМЯТЬ.

Дополнительная информация

Если приложение программно уменьшает его окно верхнего уровня, вызвав API ShowWindow() с помощью команды SW_MINIMIZE, рабочего множества процесса будут обрезаны. Тем не менее будет рабочего набораневыполнить усечение свернутое окно является программным способом посредством использования элемента ShowWindow() командой SW_SHOWMINIMIZED.

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

Процесс может явным образом обрезать свой собственный рабочий набор, вызывая SetProcessWorkingSetSize() API во время передачи "-1" для обоихdwMinimumWorkingSetSizeиdwMaximumWorkingSetSizeАргументы:. По сути это как система удаляет процесс свернутое окно верхнего уровня, его. Это не означает, что страниц памяти, используемой процессом сразу удаляются из памяти. На самом деле эти страницы могут остаться резидентного довольно некоторое время. Они просто помечаются, таким образом, чтобы система может использовать их для других процессов, при необходимости. Это значительно быстрее, чем ожидается на алгоритме стандартные настройки системы.

Если окно свернуто доСвернутькоманды из егоSystemменю илиСвернутькнопки, окно отправляется сообщение с помощью команды SC_MINIMIZE WM_SYSCOMMAND. Если процедура окна передает это сообщение процедуре окна по умолчанию в системе путем вызова DefWindowProc(), процедуры по умолчанию будет обрабатывать сообщения путем вызова ShowWindow() командой SW_MINIMIZE. Как упоминалось ранее, в результате процесс рабочее множество, чтобы выполнить усечение.

Можно написать приложение, которое может быть свернута, не открывая его рабочее множество обрезается. Для этого необходимо перехватить сообщение WM_SYSCOMMAND и реагировать на команды SC_MINIMIZE путем вызова ShowWindow() командой SW_SHOWMINIMIZED процедуру окна для окна верхнего уровня. Не должны передавать команды SC_MINIMIZE на DefWindowProc().

Пример программы

Следующий код демонстрирует написать процедуру окна, который перехватывает сообщение WM_SYSCOMMAND процедуру окна по умолчанию и процесс рабочее множество из отбрасываются.
LRESULT CALLBACK WndProc (HWND hWnd, UINT iMsg, WPARAM wParam, 
      LPARAM lParam) {

   switch (iMsg) {

      case WM_SYSCOMMAND:
         if (wParam == SC_MINIMIZE) {

            // programmatically minimize the window
            ShowWindow(hWnd, SW_SHOWMINIMIZED);

            // do not pass the minimize command on to the system's
            // default window procedure
            return 0;
         }

         // allow other system commands to be passed on to the
         // default window procedure
         break; 

      // handle other window messages here...
      case WM_WHATEVER:
         break;
   }

   return DefWindowProc(hWnd, iMsg, wParam, lParam);
}
				

Свойства

Код статьи: 293215 - Последний отзыв: 21 ноября 2010 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Win32 Application Programming Interface
Ключевые слова: 
kbapi kbkernbase kbmemory kbprb kbmt KB293215 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:293215

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com