千家信息网

VB.NET内存占用的解决方法

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章为大家展示了VB.NET内存占用的解决方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET为我们带来了许多新的应用方式和代码编写方式,在一定
千家信息网最后更新 2026年11月03日VB.NET内存占用的解决方法

本篇文章为大家展示了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内存占用的解决方法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

内存 代码 窗体 方法 最小 程序 系统 应用 函数 方式 编程 操作系统 人员 内容 只是 就是 应用程序 性能 技能 效果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技产业 重生之互联网科技帝国 科技互联网产品 科技股互联网 互联网金融监管科技数据 与互联网科技公司 善班互联网科技 猫创互联网科技 美国互联网前沿科技 深圳卡尔迅互联网科技有限公司怎么样 济南和联互联网科技有限公司 阿里互联网科技公司 互联网科技研发水平 青海科技产业互联网发展 山东有哪些互联网科技公司 广州有谷有贝互联网科技有限公司 广东鹅鹅鹅互联网科技有限公司 广西泛欧互联网科技有限公司 华人运通互联网科技公司 北京瑞云互联网科技有限公司 金融科技与互联网金融 互联网未来科技 上海亿帐通互联网科技 镁科技互联网资讯平台 青岛中康互联网医疗科技有限公司 华夏恒生互联网科技013171 昆明中奇联合互联网科技 江苏互联网智能科技产品出厂价 互联网科技手机排行榜 小牛互联网科技有限公司地址
0