안녕하세요..
저는 쓰래드 상에서 화면을 여러개 캡쳐하려고 하는데요, 아주빨리 거의 동시에 쓰래드가 많이 생기면 'EOutOfResource 사용가능 저장소가 부족하여 이 명령을 수행할 수 없습니다.' 란 에러메세지가 떠여..흑흑..제가 도와주세여..
뭐가 문제일까요? 다음은 소스입니당..
procedure TWorkThread.Execute;
var
cnt: integer;
begin
for cnt := 0 to length(FArrayRect) - 1 do
begin
FRect := FArrayRect[cnt];
Synchronize(GetScreen);
end;
end;
procedure TWorkThread.GetScreen;
var
dc: integer;
begin
dc := GetWindowDC(0);
try
Fbmp.Width := FRect.Right - FRect.left;
Fbmp.Height := FRect.Bottom - FRect.Top;
BitBlt(Fbmp.Canvas.handle, 0, 0, Fbmp.Width, Fbmp.Height, dc, FRect.Left, FRect.Top, SRCCOPY);
Fbmp.PixelFormat := pf16bit;
finally
ReleaseDC(0, dc);
end;
end;