簡體   English   中英

Windows CE中的內存不足通知

[英]Low memory notifications in Windows CE

有可能在可用內存低於某個限制(用戶可配置)時收到通知嗎? 我查看了WM_HIBERNATE事件,但似乎此事件的限制不是用戶可配置的,並且是硬編碼的(160KB ??)。 我能想到的唯一方法是通過GlobalMemoryStats()API定期輪詢操作系統(每5秒鍾一次)獲取可用內存,如果可用內存低於用戶配置的限制,則向用戶發出一個事件。 有沒有更好的辦法?

此通知必須適用於從Windows CE 5.0和Windows Mobile 6.5開始的設備

操作系統中沒有什么固有的東西可以告訴你內存低於任意級別,沒有。 您可以在應用程序中進行輪詢或創建為您執行此操作的服務/驅動程序,這是最佳方式。 哪個“更好”取決於是否只有一個進程需要了解通知。

如果這是你的應用程序可以耗盡內存,那么你可以實現一些代碼來攔截這種低內存情況,然后系統才會這樣做。 一些提示:

  • 覆蓋新的,malloc或任何其他分配內存的函數,並檢查每次分配是否會耗盡內存。

  • 如果你害怕你會減慢你的應用程序(你應該:))然后使用一些內存管理器,如Dougs Lee malloc.c,你可以修改是這樣每次它從系統內存中抓取另一個64KB塊你將檢查是否系統記憶力不是太低

  • 你可以從注冊表中讀取什么是低內存級別,你會發現這些條目:WLC的HKLM \\ System \\ Hibernate和WM的HKLM \\ System \\ OOM。

http://msdn.microsoft.com/en-us/library/ms911907.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM