Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

Set kerja aplikasi dipangkas ketika jendela top-level yang diminimalkan

PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.

Klik disini untuk melihat versi Inggris dari artikel ini:293215
GEJALA
Ketika sebuah aplikasi top-level jendela diminimalkan melalui Meminimalkan perintah dari yang Sistem menu atau klik pada yang Meminimalkan tombol, sistem operasi akan memangkas set bekerja untuk proses. Hal ini dilakukan untuk membebaskan RAM untuk aplikasi latar depan. Sebagai hasil dari pemangkasan ini, proses mungkin mengalami kinerja secara signifikan miskin karena halaman memori menyalahkan kembali ke RAM.
INFORMASI LEBIH LANJUT
Jika sebuah aplikasi meminimalkan jendela yang top-level pemrograman dengan menelepon ShowWindow() API dengan perintah SW_MINIMIZE, set bekerja proses akan dipotong. Namun, kerja ditetapkan akan tidak dipotong ketika jendela pemrograman diminimalkan melalui penggunaan dari ShowWindow() dengan perintah SW_SHOWMINIMIZED.

Set bekerja proses adalah rangkaian memori halaman saat ini terlihat untuk proses fisik RAM. Akses ke memori ini sangat cepat karena halaman penduduk dan tersedia untuk aplikasi menggunakan tanpa memicu kesalahan halaman.

Proses secara eksplisit dapat memangkas bekerja sendiri diatur dengan menelepon SetProcessWorkingSetSize() API sementara lewat "1" untuk kedua dwMinimumWorkingSetSize dan dwMaximumWorkingSetSize parameter. Ini pada dasarnya adalah bagaimana sistem trims proses ketika jendela top-level yang diminimalkan. Ini tidak berarti bahwa halaman memori yang digunakan oleh proses segera dibuang dari RAM. Pada kenyataannya, Halaman ini mungkin tetap penduduk cukup lama. Mereka hanya ditandai sehingga sistem dapat menggunakannya untuk proses lainnya yang diperlukan. Hal ini secara signifikan lebih cepat daripada menunggu sistem standar pemangkasan algoritma.

Ketika jendela diminimalkan melalui Meminimalkan perintah dari yang Sistem menu atau Meminimalkan tombol, jendela dikirim pesan WM_SYSCOMMAND dengan perintah SC_MINIMIZE. Jika prosedur jendela lewat pesan ini ke sistem default jendela prosedur menelepon DefWindowProc(), prosedur standar akan menangani pesan dengan menelepon ShowWindow() dengan perintah SW_MINIMIZE. Sebagaimana dinyatakan sebelumnya, ini akan menyebabkan proses bekerja untuk dipotong.

Anda dapat menulis aplikasi yang dapat diminimalkan tanpa yang bekerja set dipangkas. Untuk melakukannya, prosedur jendela untuk jendela top-level harus mencegat pesan WM_SYSCOMMAND dan menanggapi perintah SC_MINIMIZE oleh ShowWindow() panggilan langsung dengan perintah SW_SHOWMINIMIZED. Itu tidak harus lulus perintah SC_MINIMIZE ke DefWindowProc().

Contoh kode

Kode berikut menunjukkan bagaimana menulis sebuah jendela prosedur yang penyadapan WM_SYSCOMMAND pesan untuk melewati prosedur jendela default dan mencegah proses bekerja set dari yang dipangkas:
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);}				

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 293215 - Tinjauan Terakhir: 09/23/2011 23:45:00 - Revisi: 2.0

Microsoft Win32 Application Programming Interface

  • kbapi kbkernbase kbmemory kbprb kbmt KB293215 KbMtid
Tanggapan
"text/javascript"> Asimov.clickstreamTracker.init();