ชุดการทำงานของโปรแกรมประยุกต์ถูก trimmed เมื่อหน้าต่างระดับบนสุดของถูกย่อให้เล็กสุด

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 293215 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

เมื่อโปรแกรมประยุกต์ที่ระดับบนสุดของ หน้าต่างถูกย่อให้เล็กสุดผ่านทางการย่อเล็กสุดคำสั่งจากนั้นระบบ:เมนูหรือคลิในนั้นย่อเล็กสุดปุ่ม การระบบปฏิบัติการจะตัดแต่งการตั้งค่าการทำงานสำหรับกระบวนการ ซึ่งจะดำเนินการเพิ่ม RAM สำหรับโปรแกรมประยุกต์ที่ทำงานเบื้องหน้า เป็นผลมาจากการ trimming นี้ กระบวนการอาจมาก poorer ประสิทธิภาพการทำงานเนื่องจากกำลังถูก faulted หน้าของหน่วยความจำกลับเข้าไปใน RAM

ข้อมูลเพิ่มเติม

ถ้ามีการย่อหน้าเล็กโปรแกรมประยุกต์สุดของหน้าต่างระดับบนสุดโดยทางโปรแกรม โดยการเรียก API ShowWindow() ด้วยคำสั่ง SW_MINIMIZE ชุดการทำงานของกระบวนการจะถูก trimmed อย่างไรก็ตาม ชุดการทำงานจะไม่สามารถ trimmed เมื่อ ลด หน้าต่าง เป็น ทาง การ เขียน โปรแกรม ลง โดย ใช้ ของ ShowWindow() ด้วย คำ สั่ง SW_SHOWMINIMIZED

ชุด การ ทำ งาน ของ กระบวน การ ที่ จะ เป็น ชุด ของ หน่วย ความ จำ หน้า ใน ขณะ นี้ ให้ มอง เห็น กระบวน การ ใน RAM ที่ มี อยู่ จริง การ เข้า ถึง หน่วย ความ จำ นี้ ได้ อย่าง รวด เร็ว มาก เนื่อง จาก เพ จที่ resident และ พร้อม ใช้ งาน สำหรับ โปรแกรม ประยุกต์ ใช้ โดย ไม่ ต้อง triggering ข้อ บกพร่อง ที่ หน้า

กระบวนการสามารถตัดแต่งทำงานของตนเอง โดยการเรียก SetProcessWorkingSetSize() API ขณะกำลังส่งต่อ-"% 1" สำหรับทั้งการตั้งค่าได้dwMinimumWorkingSetSizeและdwMaximumWorkingSetSizeพารามิเตอร์ นี่คือ essentially วิธีระบบขลิบกระบวนการเมื่อหน้าต่างระดับบนสุดของถูกย่อให้เล็กสุด ซึ่งไม่ได้หมายความ ว่า เพจของหน่วยความจำที่กระบวนการใช้จะถูกละทิ้งทันทีจาก RAM ใน fact เพจเหล่านี้อาจยังคง resident สำหรับองครู่ ตั้งค่าดังกล่าวมีเพียงแค่สถานะเพื่อให้ระบบสามารถใช้ได้สำหรับกระบวนการอื่น ๆ ตามความจำเป็น นี่คือมากที่เร็วกว่าการรอบนอัลกอริทึม trimming มาตรฐานของระบบ

หน้าต่างจะลดลงเมื่อผ่านทางการย่อเล็กสุดคำสั่งจากนั้นระบบ:เมนูหรือย่อเล็กสุดปุ่ม หน้าต่างจะส่งข้อความ WM_SYSCOMMAND ด้วยคำสั่ง SC_MINIMIZE ถ้าขั้นตอนของหน้าต่างส่งผ่านข้อความนี้ในขั้นตอนของหน้าต่างการเริ่มต้นของระบบ โดยการเรียก DefWindowProc() กระบวนการเริ่มต้นจะจัดการกับข้อความ โดยการเรียก ShowWindow() ด้วยคำสั่ง SW_MINIMIZE ตามที่ระบุไว้ก่อนหน้านี้ ซึ่งจะทำให้กระบวนการทำงานการตั้งค่าเป็นสามารถ trimmed

คุณสามารถเขียนโปรแกรมประยุกต์ที่สามารถถูกย่อให้เล็กสุดโดยไม่จำเป็นชุดการทำงานของ trimmed เมื่อต้องการทำเช่นนี้ กระบวนการหน้าต่างสำหรับหน้าต่างระดับบนสุดควรดักข้อความ WM_SYSCOMMAND และตอบสนองต่อคำสั่ง SC_MINIMIZE โดย ShowWindow() เรียกโดยตรงโดยใช้คำสั่ง SW_SHOWMINIMIZED คุณไม่ควรผ่านคำสั่ง SC_MINIMIZE ไป DefWindowProc()

ตัวอย่างรหัส

รหัสต่อไปนี้อธิบายวิธีการเขียนกระบวนงานหน้าต่างที่ intercepts WM_SYSCOMMAND ข้อความให้ข้ามขั้นตอนในหน้าต่างการเริ่มต้น และป้องกันการประมวลผลที่ทำงานการตั้งค่าจากการถูก trimmed:
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);
}
				

คุณสมบัติ

หมายเลขบทความ (Article ID): 293215 - รีวิวครั้งสุดท้าย: 16 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Win32 Application Programming Interface
Keywords: 
kbapi kbkernbase kbmemory kbprb kbmt KB293215 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้: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