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
[26516] Re:쓰레드 사용중인 상태에서 윈도우를 띄우면 다운됩니다.
박지훈.임프 [cbuilder] 1623 읽음    2003-08-01 15:21
임프랍니다.

만약 쓰레드 내부에서 윈도우를 띄우거나 패널의 속성을 조작하신 거라면...
VCL의 화면 관련 루틴들은 멀티쓰레드 환경을 지원하지 않으므로 절대로 쓰레드 내에서 VCL 비주얼 컴포넌트를
다루어서는 안됩니다.

그런 경우라면...
CreateThread나 BeginThread를 써서 쓰레드를 생성했다면 무조건 메인 쓰레드로 실행을 위임해야 하구요.
VCL의 TThread를 썼다면 TThread의 멤버함수인 Synchronize를 쓰면 아주 간단히 해결됩니다.
Synchronize() 함수를 이용하면 인자로 넘긴 함수를 디폴트 쓰레드에서 실행하도록 해줍니다.

만약, 쓰레드가 실행되기는 하지만 그 쓰레드가 아닌 디폴트 쓰레드에서 폼이나 패널을 조작했는데도 문제가
발생한다면, 말씀하신 내용만으로는 짐작이 어려우니 어떤 방법을 쓰셨다거나 소스코드를 올려주셔야 할 거
같네요.

그럼...


DoyongID 님이 쓰신 글 :
: CreateThread()로 생성한 쓰레드가 돌아가는 상태에서 윈도우를 하나 Show()하면 다운됩니다.
: 윈도우 뿐만 아니라 Panel을 Visible = true시켜도 그렇게 되네요.
:
: 해결할 방법이 없을까요?

+ -

관련 글 리스트
26511 쓰레드 사용중인 상태에서 윈도우를 띄우면 다운됩니다. DoyongID 671 2003/08/01
26516     Re:쓰레드 사용중인 상태에서 윈도우를 띄우면 다운됩니다. 박지훈.임프 1623 2003/08/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.