91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB.NET內存占用的解決方法

發布時間:2021-10-27 17:38:36 來源:億速云 閱讀:412 作者:柒染 欄目:編程語言

本篇文章為大家展示了VB.NET內存占用的解決方法,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

VB.NET為我們帶來了許多新的應用方式和代碼編寫方式,在一定程度上大大提高了編程人員的編程效率。而且其應用方式多樣化,靈活性等特點大大吸引著開發人員。

VB.NET內存占用方法一:將窗體隱藏或者最小化啟動

下列VB.NET 2005代碼片斷通過窗體變量m_IsHide來控制是否將窗體最小化并隱藏,初始化為True。

為了運行下列代碼,還需要一個NotifyIcon及一個與之關聯的ContextMenuStrip,后者包含mnuShow和mnuHide菜單兩枚。

  1. Private m_IsHide As Boolean = True 

  2. Private Sub frmMain_Activated() Sub 
    frmMain_Activated(ByVal sender As 
    Object, ByVal e As System.EventArgs) 
    Handles Me.Activated  

  3. If m_IsHide Then  

  4. Me.WindowState = FormWindowState.
    Minimized  

  5. Me.Hide()  

  6. Else  

  7. Me.WindowState = FormWindowState.
    Normal  

  8. Me.Show()  

  9. End If  

  10. End Sub  

  11. Private Sub frmMain_Resize() Sub 
    frmMain_Resize(ByVal sender As Object, 
    ByVal e As System.EventArgs) 
    Handles Me.Resize  

  12. If Me.WindowState = FormWindowState.
    Minimized Then  

  13. m_IsHide = True 

  14. Me.Hide()  

  15. End If  

  16. End Sub  

  17. Private Sub mnuShow_Click() Sub 
    mnuShow_Click(ByVal sender As 
    System.Object, ByVal e As System.
    EventArgs) Handles mnuShow.Click  

  18. m_IsHide = False 

  19. Me.WindowState = FormWindowState.Normal  

  20. Me.Show()  

  21. End Sub  

  22. Private Sub mnuHide_Click() Sub 
    mnuHide_Click(ByVal sender As System.
    Object, ByVal e As System.EventArgs) 
    Handles mnuHide.Click  

  23. m_IsHide = True 

  24. Me.WindowState = FormWindowState.Minimized  

  25. Me.Hide()  

  26. End Sub 

上述代碼的功能是:

  • VB.NET可執行語句示例代碼解讀

  • VB.NET創建過程相關步驟詳解

  • 如何對VB.NET流進行正確操作

  • 兩種VB.NET發送郵件方法解讀

  • VB.NET調用WinAPI實例探討

1、 啟動時最小化并隱藏

2、 點擊mnuHide窗體隱藏

3、 點擊mnuShow窗體恢復

4、 最小化時窗體隱藏

一句話,其實就是編程使窗體啟動時最小化。

VB.NET內存占用方法二:Windows將程序占用的內存倒入虛擬內存可以造成小內存占用的假象。

樂天居上有篇文章“將物理內存的占用挪到虛擬內存里-----揭密篇 ”對此有完整的介紹:“而是操作系統本身就有這個機制,即當程序不使用時(最小化),操作系統會調用某些命令,來將該程序占用的內存移至虛擬內存,只保留一小部分常規代碼”

BOOL SetProcessWorkingSetSize(  HANDLE hProcess,  SIZE_T dwMinimumWorkingSetSize,  SIZE_T dwMaximumWorkingSetSize  );

“將 2個 SIZE_T 參數設置為 -1 ,即可以使進程使用的內存交換到虛擬內存,只保留一小部分代碼。

事實上,使用該函數并不能提高什么性能,也不會真的節省內存。因為他只是暫時的將應用程序占用的內存移至虛擬內存,一旦,應用程序被激活或者有操作請求時,這些內存又會被重新占用。如果你強制使用該方法來 設置程序占用的內存,那么可能在一定程度上反而會降低系統性能,因為系統需要頻繁的進行內存和硬盤間的頁面交換。”

給出我在vb2005中的使用范例:

  1. Imports System.Runtime.InteropServices  

  2. Module modMain Module modMain  

  3. < DllImport("kernel32.dll")> _  

  4. Public Function SetProcessWorkingSetSize() 
    Function SetProcessWorkingSetSize( _  

  5. ByVal hProcess As Integer, _  

  6. ByVal dwMinimumWorkingSetSize As Integer, _  

  7. ByVal dwMaximumWorkingSetSize As Integer) _  

  8. As Integer  

  9. End Function  

  10. < DllImport("kernel32.dll")> _  

  11. Public Function GetCurrentProcess() 
    Function GetCurrentProcess() As Integer  

  12. End Function  

  13. Public Sub ReduceMem() Sub ReduceMem()  

  14. SetProcessWorkingSetSize(GetCurrentProcess, -1, -1)  

  15. End Sub  

  16. End Module  

使用ReduceMem()函數的效果很贊,但是不建議經常用,我只是在FormLoad時用一下,效果就很好了。

值得一提的是,如果不使用GetCurrentProcess()函數得到當前Process,而是使用Process.GetCurrentProcess(),則無法有效縮減使用內存。

上述內容就是VB.NET內存占用的解決方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏边| 永顺县| 黑河市| 宜章县| 县级市| 华池县| 尼木县| 长沙市| 荆州市| 靖江市| 常州市| 英吉沙县| 阳江市| 遂昌县| 略阳县| 永城市| 巴马| 岳阳市| 阳曲县| 罗山县| 浪卡子县| 浮山县| 陆丰市| 南华县| 商水县| 工布江达县| 长春市| 文成县| 图们市| 娄底市| 新野县| 洛扎县| 桑植县| 贵州省| 安平县| 临夏市| 轮台县| 红安县| 繁峙县| 邢台市| 通山县|