永发信息网

VB.net 利用GDI截图内存不断增加的问题

答案:2  悬赏:0  手机版
解决时间 2021-02-07 05:26
核心代码如下:
Function GetSerPic(Optional ByVal BitWidth As Integer = -1, Optional ByVal BitHeight As Integer = -1) As Image
Dim SourceDC As IntPtr = Graphics.FromHwnd(Form1.DIVPanel.Handle).GetHdc()
Dim Bhandle, DestDC As IntPtr

DestDC = CreateCompatibleDC(SourceDC)
Bhandle = CreateCompatibleBitmap(SourceDC, BitWidth, BitHeight)
SelectObject(DestDC, Bhandle)
BitBlt(DestDC, 0, 0, BitWidth, BitHeight, SourceDC, 0, 0, &HCC0020)
Return Image.FromHbitmap(Bhandle)
End Function
,,我是把这段代码放在定时器里面运行的,差不多每秒钟增加5MB的内存,5分钟左右程序崩溃. 该怎么处理呢
最佳答案
你光create位图,不释放,肯定崩溃呀。的释放,DeleteObject释放Bitmap,DeleteDC释放DC,另外Graphics.FromHwnd(Form1.DIVPanel.Handle)返回的DC也需要释放,代码改成这样:
Function GetSerPic(Optional ByVal BitWidth As Integer = -1, Optional ByVal BitHeight As Integer = -1) As Image
        Dim g As Graphics = Graphics.FromHwnd(Me.DIVPanel.Handle)
        Dim SourceDC As Long = g.GetHdc()
        Dim Bhandle, DestDC As Long, Old As Long

        DestDC = CreateCompatibleDC(SourceDC)
        Bhandle = CreateCompatibleBitmap(SourceDC, BitWidth, BitHeight)
        Old = SelectObject(DestDC, Bhandle)
        BitBlt(DestDC, 0, 0, BitWidth, BitHeight, SourceDC, 0, 0, &HCC0020)
        Dim bmp As Bitmap = Image.FromHbitmap(Bhandle)
        SelectObject(DestDC, Old)
        DeleteObject(Bhandle)
        DeleteDC(DestDC)
        g.ReleaseHdc()
        Return bmp
    End Function
全部回答
DestDC = CreateCompatibleDC(SourceDC) Bhandle = CreateCompatibleBitmap(SourceDC, BitWidth, BitHeight) 都是建立内存,你最后要是放啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
繁峙新顺园旅馆地址好找么,我有些事要过去
永丰辣酱地址在什么地方,想过去办事
繁峙祥瑞速八宾馆地址好找么,我有些事要过去
初一下册计算题前面要不要加解原式等于
请修改登高望远见山青绿水千帆过,放歌纵酒喜
繁峙金源宾馆地址在什么地方,想过去办事
繁峙杏园宾馆怎么去啊,我要去那办事
侯马有成人用品批发店吗?
云南南部的西双版纳傣族自治州,分布有中国纬
自动生产线按自动化程度分多少大类?
篮球中的“突破”用英文怎么说?
兴荣四巷/兴荣一巷(路口)这个地址在什么地方
大足骑摩托车到重庆,应该怎么走
繁峙金盛旅馆地址好找么,我有些事要过去
取一段木本植物的茎,将其下端插入滴有红墨水
推荐资讯
腾讯视频怎么老是审核不通过?我的视频只是讲
尚志公园游乐园我想知道这个在什么地方
the constructor is ambiguous怎么处理
胰岛素、纤维素和雄性激素的化学成分依次是A.
为什麽我一见到我喜欢的人,就老是一直看着他
青岛东海假期国际旅行社(东海旅行社浮翠园店)
【快乐的五一节作文】快乐的五一节作文
甲妆女孩地址好找么,我有些事要过去
亲利缘家政房产地址在哪,我要去那里办事
田尾居委会地址有知道的么?有点事想过去
现在和一家银行签署劳动协议,但是领导要报到
项氏影像地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?