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
[20508] Re:WaitForMultipleObjects()사용시에 문제가 있습니다. 답변좀 부탁드립니다.
왕대박 [emrwo] 1669 읽음    2002-07-30 09:19
혹시, Thread에서, Form1의 Control에 접근할때~

void __fastcallTMyThread::Execute()
{
  ...
  Synchronize( (TThreadMethod)HaHaHaFunction);
  ...
}

해주셨나요???  아님.. 죄송.. ^^
프로그램을 돌려라~~~



초자순이 님이 쓰신 글 :
: 안녕하세요
:
: 알고 싶은게 있어서 이렇게 글을 올립니다.
:
: formcreate()
: {
:    주스레드가 돕니다.
:
:    부스레드 4개를 만들어서 돕니다.
:
:    WaitForMultipleObjects()를 써서 주스레드를 부스레드가 끝날때까지 기다리게 합니다.
:
:    부스레드 4개가 다 terminate되면
:
:    주스레드가 동작합니다.
: }
:
: 전체적인 루틴은 이렇습니다.
:
: 잘 돌아갑니다.
:
: 근데 부스레드에서
:
: Form1->ListBox1->Items->Add("Thread Number = " + aa);   //여기서 aa는 AnsiString이다.
:
: 이런식으로 Form1에 접근할려고 하면 부스레드부분에서 스레드가 멈춥니다.
:
: 즉 파일 에세스, DB 에세스할때는 아무이상없습니다... 다른 연산을 할때도 아무이상없다가
:
: Form1에 있는 컴포넌트를 실행할라구 하면 그냥 멈처버립니다.
:
: 제 생각은 주스레드가 WaitForMultipleObjects()로 인해서 기다리고 있을때 Form1에 있는 컴포넌트 실행하는것두 영향을 받는것 같습니다.
:
: 주스레드에서 WaitForMultipleObjects()를 안쓰구 부스레드만 돌리면 아무문제없이 돌아가는데
:
: WaitForMultipleObjects()를 쓰면 그렇게 멈쳐버립니다.
:
: 혹시나 해서 SetEvent(hEvent)로 이벤트를 사용하고 WaitForSingleObject(hEvent,INFINITE);를 사용해보았습니다.
:
: 그래도 또한 부스레드에서 Form1에 접근할려고 하면 부스레드부분에서 스레드가 멈쳐버립니다.
:
: 이유가 무엇인지 잘 모르겠구요.
:
: Form1에 있는 컴포넌트를 실행하고 싶은데 방법이 없을까요?
:
: 전체적인 루틴을 바꾸고 싶지은 않습니다.
:
:
:
:

+ -

관련 글 리스트
20483 WaitForMultipleObjects()사용시에 문제가 있습니다. 답변좀 부탁드립니다. 초자순이 1455 2002/07/29
20508     Re:WaitForMultipleObjects()사용시에 문제가 있습니다. 답변좀 부탁드립니다. 왕대박 1669 2002/07/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.