Q&A

  • Thread 너무 어렵다..
안녕하세요..
저는 쓰래드 상에서 화면을 여러개 캡쳐하려고 하는데요, 아주빨리 거의 동시에 쓰래드가 많이 생기면 '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;
0  COMMENTS