OnIdle的詳細說明

2021-06-21 22:17:33 字數 1050 閱讀 8050

lcount

該引數是乙個計數值,當應用程式的訊息隊列為空,onidle函式被呼叫時,該計數值就增加1。每當一條新訊息被處理時,該計數值就被復位為0。你可以使用lcount引數來確定應用程式不處理訊息時空閒時間的相對長度。

說明:如果要執行空閒時處理,則過載這個成員函式。當應用程式的訊息隊列為空時,onidle就在預設的訊息迴圈中被呼叫。你可以用過載函式來呼叫自己的後台空閒處理任務。

onidle應返回0以表明不需要更多的空閒處理時間。當訊息隊列為空時,onidle每被呼叫一次lcount引數就增加,而每處理一條新訊息lcount就被復位為0。你可以根據這個計數值呼叫不同的空閒處理例程。

下面總結了空閒迴圈處理:

1.如果微軟基礎類庫中的訊息迴圈檢查訊息佇列並發現沒有未被處理的訊息,它就為應用程式物件呼叫onidle函式,並將lcount引數設為0。

2.onidle執行一些處理,然後返回乙個非零值,表示它還需要被呼叫,以進行進一步處理。

3.訊息迴圈再次檢查訊息佇列。如果沒有未處理的訊息,則再次呼叫onidle,增加lcount引數。

4.最後,onidle結束所有的空閒任務並返回0。這就告訴訊息迴圈停止呼叫onidle直到在訊息佇列中接收到下一條訊息為止,在那時,空閒迴圈將重新啟動,而引數被設為0。

///注意

在vc基於對話方塊程式中,似乎不能使用onidle。從網上查了一下,可以用wm_kickidle訊息實現相同功能。wm_kickidle訊息響應需要自己手動新增**。下面是步驟:

1.mydlg.cpp檔案新增包含:

#include  

2.mydlg.h檔案新增宣告

afx_msg   lresult   onkickidle(wparam   wparam,   lparam   lparam);

3.mydlg.cpp檔案新增訊息對映:

on_message(wm_kickidle,onkickidle)

4.mydlg.cpp新增函式的實現:

lresult cmydlg::onkickidle(wparam   wparam,   lparam   lparam) 

Struts config xml 詳細說明

頁面中表單對應的bean儲存表單資料,驗證 type hello.helloform formbean 對應的包名.類名 路徑的邏輯名,此項必須有 path action1.do 指向 或重定向的uri.此項是必需的,必須以 開頭.請求訪問action的路徑,必須以 開頭 type hello.he...

Struts config xml 詳細說明

頁面中表單對應的bean儲存表單資料,驗證 type hello.helloform formbean 對應的包名.類名 name forward1 路徑的邏輯名,此項必須有 path action1.do 指向 或重定向的uri.此項是必需的,必須以 開頭.name forward2 path a...

Linux free m 詳細說明

linux記憶體中buffer與cache的區別 free 命令相對於top 提供了更簡潔的檢視系統記憶體使用情況 free total used free shared buffers cached mem 255268 238332 16936 0 85540 126384 buffers ca...