|
Unit1.h file
class Tthread_A : public TThread
{
public:
__fastcall Tthread_A(void);
int asyn_count, test_number;
char textname[100];
double atest_cur;
double agraph_time;
private:
void __fastcall Execute(void);
void __fastcall UpdateDisplay(void);
void __fastcall ATestGraph(void);
};
Unit1.cpp
__fastcall Tthread_A::Tthread_A(void) : TThread(TRUE)
{
FreeOnTerminate = TRUE;
Resume();
}
//---------------------------------------------------------------------------
void __fastcall Tthread_A::Execute(void)
{
while(!Terminated) {
UpdateDisplay();
}
}
//---------------------------------------------------------------------------
void __fastcall Tthread_A::UpdateDisplay(void)
{
while(!Terminated) {
//이 안에 질문한 코드가 있습니다.
}
}
그리고 쓰레드 호출은 thread_A = new Tthread_A; 이렇게 했습니다.
참 그리고 최적화가 안된 부분은 어디입니까.
유영인 Cuperido 님이 쓰신 글 :
: 쓰레드 생성 부분과, 돌아가는 부분 (정확히 말해 호출 되는 부분) 까지 함께 올려주셔야..
: 정확한 답변을 해드릴 수 있지 않을까 싶습니다. :)
:
: 간단한 프로젝트를 하나 만들어서 첨부해 주시면 더더욱 좋겠지요..
: 아래 내용만으로는 특별한 에러는 못찾겠군요.. (최적화가 안된 부분만 살짝 있구.. ^^) :(
:
: cuperido
:
: 남자 님이 쓰신 글 :
: : 안녕하세요.
: :
: : 쓰레드 안에 아래와 같이 코딩을 했습니다.
: : 화면을 캡쳐해서 파일로 저장하는 부분인데... (물론 볼랜더포럼에서 검색해서 코드를 찾아꾸요...ㅋㅋㅋ)
: : 쓰레들를 돌리다 보면 어느 순간에 TJPEGImage .... Resource Error 인가 부족인가 그와 비슷한 에러가 나옵니다.
: : Resource 로 검색해서 보니 쓰레드안에서 이런 문제가 발생하는 경우의 질문이 몇가지 있더군요...
: : Synchronize 로 처리해도 안된다고 되어있던데....
: :
: : 혹시 이 문제를 해결할 방법이 없나요.
: :
: : HDC dc = GetDC(0);
: : Graphics::TCanvas *ScreenCanvas = new Graphics::TCanvas;
: : ScreenCanvas->Handle = dc;
: :
: : Form14->Image3->Picture->Bitmap->Width = 1280;
: : Form14->Image3->Picture->Bitmap->Height = 1024;
: :
: : TRect rect;
: : rect = Rect(1, 1, 1280, 1024);
: : Form14->Image3->Picture->Bitmap->Canvas->CopyRect(rect, ScreenCanvas, rect);
: : if(Form14->capture_value == 0) {
: : Form14->Image3->Picture->Bitmap->Canvas->CopyRect(rect, ScreenCanvas, rect);
: : }
: : delete ScreenCanvas;
: : ReleaseDC(NULL, dc);
: : Form14->capture_value = 1;
: :
: : //jpeg file------------------------------------------------------------
: : sprintf(textname,"%s_%06d.jpg", DurTestPattern14.filename, Form14->current_cycle);
: : TJPEGImage *MyJpg = new TJPEGImage();
: : MyJpg->Assign(Form14->Image3->Picture->Bitmap);
: : MyJpg->CompressionQuality = 100;
: : MyJpg->SaveToFile(textname);
: : delete MyJpg;
|