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
[55777] Re:TThreadList 사용중 의문사항이 있습니다.
civilian [civilian] 1495 읽음    2009-01-13 16:07
UnLockList를 하기전엔 다른 쓰레드에서 참조할 수 없습니다.


이범상 님이 쓰신 글 :
:
: 
: 	// Thread의 Execute() 내용입니다.
: 	TList *ItemList;
: 
: 	while (!Terminated)
: 	{
: 		if(FPaused)
: 		{
: 			Sleep(100);
: 			Application->ProcessMessages();
: 			continue;
: 		}
: 		ItemList= FThreadList->LockList();
: 		iCount = ItemList->Count;
: 
: 		// Repeat 버튼 클릭시
: 		while(FRepeatLoop == true && FRepeatItem != NULL)
: 		{
: 			Sleep(0);
: 			Application->ProcessMessages();
: 
: 			if(Terminated)
: 				break;
: 						
: 			... 반복 구문 ...
: 			}
: 		}
: 
: 		...
: 
: 		FThreadList->UnlockList();
: 		Sleep(0);
: 	}
: 
: 

: 안녕하세요.
: 항상 이곳에서 많은 정보를 얻어가는 초보입니다. ^^
: TThreadList와 관련된 질문이 있어서 이렇게 글을 올립니다.
:
: 현재 메인에서 Play버튼을 클릭하면 TThread로 새로운 쓰레드를 생성, Resume()하여 위의 Excute()를 실행하도록 했습니다.
:
: 그리고 While문으로 Stop버튼을 클릭하기 전까진 계속 무한 Loop가 돌도록 했습니다.
: 또한 Repeat 버튼을 클릭하면 FRepeatLoop 가 true로 되어 while문 안에 다시 while문으로 들어가도록 했습니다.
:
: TThreadList를 사용하여 List별로 관리되는 Data가 있는데 소스처럼 while문 시작하고 LockList()를 하고 끝나기전 UnlockList()를 합니다.
: TThreadList는 쓰레드에서도 사용하고 메인에서도 데이터를 읽기도 합니다.
:
: 위 소스 내용으로 구동될 때 Repeat버튼을 클릭하여 while문 안의 while에 들어가면 프로그램이 정지된듯 컨트롤이 안됩니다.
: 그러나 내부적으로 Loop는 돌고 있습니다.
: 화면 컨트롤만 안되는 것 같습니다.
:
: TThread를 사용해서 UnlockList전에 메인에서 데이터를 읽으려해서 그런것 같은데 해결 방안이 잘 떠오르지 않습니다.
:
: 고수님들 해결방안 좀 부탁드립니다. ^^
:
: 읽어 주셔서 감사합니다.

+ -

관련 글 리스트
55773 TThreadList 사용중 의문사항이 있습니다. 이범상 1182 2009/01/13
55777     Re:TThreadList 사용중 의문사항이 있습니다. civilian 1495 2009/01/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.