C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[24522] [질문]핸들을 놓치는 문제..
하안인 [hurco] 607 읽음    2003-02-27 13:17
CRITICAL_SECTION CS;
폼에
void __fastcall TForm1::Update(int no,String Msg)
{
EnterCriticalSection(&CS);
ListBox1->Items->Add(IntToStr(no)+Msg);
LeaveCriticalSection(&CS);
}

int __fastcall TyThread::Execute()
{
  while(true)
  {
    MyPrg(no);
  }
}
int __fastcall TyThread::MyPrg(int no)
{
  ....
  Form1->Update(no,msg);
.....
  Form1->Update(no,msg);

}

폼에 페이지컨트롤을 하나 놓고 페이지를 여러개 놓은 중에 하나의 페이지에 ListBox
가 있습니다.
이 ListBox의 Item에 여러개의 쓰레드가 내용을 추가하려고 합니다.
그런데 쓰레드 하나만 띄워놓고도 데이타를 추가하면 원도우 핸들을 읽어버리는것 같습니다.
Append되는 페이지의 컨트롤을 누르면 그때부터 그 페이지컨트록은 먹통이 됩니다.
페이지 컨트롤의 한 페이지(업데이트되는)를 클릭하면 내용이 없고 자기 맘대로
페이지 컨트롤이 움직입니다.(쓰레드에서 업데이트 할때)
위와 같이 쓰레드를 구현하는것이 틀린건가요.


참고로 쓰레드에서 폼의 컨트롤에 업데이트 하는 부분을 삭제후 테스트 하면
정상적으로 작동합니다.
그리고 페이지 컨트롤이 아닌 폼에 ListBox를 직접적으로 올려 놓으면
정상작동을 하는데..
페이지 컨트롤에서 업데이트되는 페이지가 선택안되어 있어도 상관없이
업데이트되어야 하는것 아닌가요.

그럼, 조언 부탁드립니다.

+ -

관련 글 리스트
24522 [질문]핸들을 놓치는 문제.. 하안인 607 2003/02/27
24594     Re:[질문]핸들을 놓치는 문제.. 유영인.Chris 670 2003/03/04
24603         Re:Re:[질문]핸들을 놓치는 문제.. 하안인 607 2003/03/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.