내 응용 프로그램에서 나는 타이머 경과 이벤트에 5 초마다 "업데이트"기능을 실행합니다. 이 함수는 5 초마다 실행되어 45 개의 picturebox 이미지를 "StatoBrucitore"변수 상태로 업데이트합니다. 인터페이스의 다시 그리기 버튼을 사용하여이 기능을 강제 실행할 수도 있습니다. 스트레스 테스트에서이 함수를 여러 번 클릭하면 "메모리 부족 예외"가 나타났습니다. 다음은 코드입니다 : 중간 경우 "eStato.sAccensione"는 애니메이션 GIF 것을메모리 부족 예외 새 비트 맵
Select Case Essiccatoio.RegTemp(Ireg).StatoBruciatore
Case eStato.sOFF
NomeFile = Trim("FlameOff.png")
NomeFile = Percorso & "\Immagini\" & NomeFile
If My.Computer.FileSystem.FileExists(NomeFile) Then
Dim bm As New Bitmap(NomeFile)
PictBruc(Ireg).BackgroundImage = bm
PictBruc(Ireg).Image = Nothing
End If
Case eStato.sAccensione
NomeFile = Trim("FlameTransitorio.gif")
NomeFile = Percorso & "\Immagini\" & NomeFile
If My.Computer.FileSystem.FileExists(NomeFile) Then
Dim bm As New Bitmap(NomeFile)
PictBruc(Ireg).BackgroundImage = Nothing
PictBruc(Ireg).Image = bm
End If
Case eStato.sRegime
NomeFile = Trim("FlameTransitorio.png")
NomeFile = Percorso & "\Immagini\" & NomeFile
If My.Computer.FileSystem.FileExists(NomeFile) Then
Dim bm As New Bitmap(NomeFile)
PictBruc(Ireg).BackgroundImage = bm
PictBruc(Ireg).Image = Nothing
End If
End Select
주, 그래서 내가 애니메이션을 손실 할 수 이러한 접근 방식 원인 대신 listimage을 사용할 수 없습니다. 나는이 문제가 계속되는 "새로운 비트 맵"이라고 생각한다 ... 누구나이 예외를 해결하기 위해 제안 된 옵션을 가지고 있는가?
도움
당신은 선이있는 새로운 비트 맵을 만드는
'PictBruc()'란 무엇입니까? 당신이 만든 비트 맵을 처분하는 것처럼 보이지 않습니다. TaskManager – Plutonix
에서 GDI 객체의 상승과 상승을 볼 수 있습니다 (Disposable 객체를 아무 것도 설정하지 않으면'Image' 속성에서 'BackgroundImage'에 할당 된 비트 맵에 영향을주지 않습니다.) 나는 꽤 확신합니다. 코드 유출), – Plutonix
PictBruc()는 picturebox 배열입니다. 이 그림 상자는 항상 기본 양식에서 볼 수 있습니다. –