Çalışma kümesi, bir uygulamanın en üst düzey alt pencere simge durumuna küçültüldüğünde kesildikten

Makale çevirileri Makale çevirileri
Makale numarası: 293215 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Işletim sistemi, kendi Sistem menüsünü veya bir simge durumuna küçült düğmesini tıklatın <a2>simge durumuna küçült</a2> komutu ile bir uygulamanın en üst düzey pencere küçültüldüğünde, işlemin çalışma kümesinde kesim. Bu ön uygulamaları için RAM boşaltmak için yapılır. Kendi bellek sayfası yeniden RAM içinde hatalı çünkü bu kesme sonucu olarak, işlem ilgili güvenlik açıklarına karşı önemli ölçüde poorer performansıyla karşılaşabilirsiniz.

Daha fazla bilgi

Uygulama penceresi en üst düzey programsal olarak SW_MINIMIZE komutuyla ShowWindow() APı'SINI çağırarak azaltır, işlemin çalışma kümesinde kesildikten. Ancak, bu çalışan olacak ayarlar değil SW_SHOWMINIMIZED komutuyla pencere ShowWindow() kullanılarak programsal olarak küçültüldüğünde kesildikten.

Bir işlemin çalışma kümesi görünür fiziksel RAM bulunan işlem için bellek sayfalarını, kümesidir. Sayfaları var ve bir sayfa hatası uyarının harekete geçirilmesine karşılık olmadan kullanılacak bir uygulama için kullanılabilir olduğundan, bu bellek erişimi çok hızlıdır.

Bir işlemi açıkça kendi çalışma "-1" dwMinimumWorkingSetSize hem dwMaximumWorkingSetSize parametrelerini geçirilmesi sırasında SetProcessWorkingSetSize() APı'SINI çağırarak kesebilirsiniz. Bu, aslında en üst düzey alt pencere simge durumuna küçültüldüğünde sistem işlemi nasıl kırpar olur. Bu işlem tarafından kullanılan bellek sayfaları RAM ' hemen atılan anlamına gelmez. Aslında, bu sayfaları oldukça bir süre için yerleşik kalabilir. Sistem bunları gerektiği gibi diğer işlemler için kullanın böylece bunlar yalnızca bayrakla işaretlenir. Bu, sistemin standart kesme algoritmasına bekleyen daha önemli ölçüde daha hızlı bir yöntemdir.

Bir pencereyi simge durumuna küçült komutu, bir Sistem menüsü veya simge durumuna küçült düğmesi aracılığıyla küçültüldüğünde, pencerenin SC_MINIMIZE komutuyla WM_SYSCOMMAND ileti gönderilir. Pencere yordamı tarafından arama DefWindowProc() sistemin varsayılan pencere yordamı için bu iletinin geçiyorsa, varsayılan yordam tarafından SW_MINIMIZE komutuyla arama ShowWindow() iletinin işleyecektir. Bu, daha önce belirtildiği gibi kesildikten şekilde çalışma işlemi neden olur.

Kesildikten kendi çalışma kümesi'ni açmadan simge bir uygulama yazabilirsiniz. Bunu yapmak için <a0></a0>, en üst düzey pencere için pencere yordamı WM_SYSCOMMAND iletinin yakalamak ve arama ShowWindow() SC_MINIMIZE komutuyla SW_SHOWMINIMIZED komutuyla doğrudan yanıt gerekir. SC_MINIMIZE komutuna DefWindowProc() üzerinde yönteme değil.

Örnek kod

Aşağıdaki kodda, WM_SYSCOMMAND iletinin varsayılan pencere yordamı atlayıp kesildikten işlem çalışma kümesini önlemek için karşılar penceresi bir yordam yazmak gösterilmiştir:
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);
}
				

Özellikler

Makale numarası: 293215 - Last Review: 21 Kasım 2006 Salı - Gözden geçirme: 5.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Win32 Uygulama Programlama Arabirimi, Ne zaman ne ile kullanilir:
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Anahtar Kelimeler: 
kbmt kbapi kbkernbase kbmemory kbprb KB293215 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:293215

Geri Bildirim Ver

 

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