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
[67595] Re:Re:Re:Re:Re:TList를 TThreadList로 대체할수없는건가요?
Intotheblue [makerjh] 1730 읽음    2012-06-19 20:22
갈은 이야기가 계속 반복되고 있네요.

Threadlist는 thread 내부에서 동기화 처리를 위한 자료 구조입니다.

동기화가 필요 없으면.. 쓸 이유가 전혀 없어요.

그 동기화 처리는..
locklist 와 unlocklist 가 핵심이고요

사용 방법은 님이 올리신 예제에 다 나와 있어요..
그게 다 입니다.
나머진 List 로써 필요한 기능은..
반환되는 TList 에서 가져다 쓰면 되고요.

이게 이해 안된다면..
Thread 동기화 부분을 전혀 이해하고 있지 못한걸로 보이네요..


똑똑 님이 쓰신 글 :
: 이해가 되질 않는게
: 클라이언트들의 목록이 List에 들어갑니다
: 근데왜또 TThreadList가 필요한거죠?
: TList와 TThreadList의 기능이 조금달라서
: TList의 기능 몇개, TThreadList에 기능몇개
: 사용하기위해서 두개나 불러다가 사용하는것인지요
: 거기다가 결정적인게 두개를 불러서 어떻게 사용해야될지 감도 안오네요 ㅠㅠ
: 힌트좀 주시면 감사하겠습니다
:
: Intotheblue 님이 쓰신 글 :
: : 결과적으로 두개가 필요한게 맞습니다.
: : 님이 올리신 예제 보면..
: : 거기에 님이 필요로 하는 내용은 다 있는데요..
: :
: : : : :    List = IdTCPServer1->Contexts->LockList() ;  ==> list 가져오고..
: : : : :
: : : : :    try
: : : : :     {
: : : : :     for(Loop =0;Loop<List->Count;Loop++)  ==> count는 여기 있고요..
: :
: :
: :
: :
: : 똑똑 님이 쓰신 글 :
: : : 이해가 잘되지않는데 Count멤버변수를 사용할려면 어떻게 사용해야되는건가요?
: : : TList, TThreadList 두개가 필요한건 아니죠?
: : : 이제막 프로그래밍시작한 초보라 양해부탁드립니다
: : :
: : : Intotheblue 님이 쓰신 글 :
: : : : 반환해 주는 TList* 를 가지고 이용하면 됩니다.
: : : :
: : : : ThreadList 는 Thread 사용시 동기화 처리때문에..
: : : : lock 과 unlock 을 제공해 주는 역활을 하죠.
: : : : 나머지는 List 에 필요한것은. 반환되는 TList 로 쓰시면 됩니다.
: : : :
: : : : 올려놓으신 예제를 보면 알수 있을겁니다.
: : : :
: : : : 똑똑 님이 쓰신 글 :
: : : : : void __fastcall TForm1::SandToAll(AnsiString Text)
: : : : : {
: : : : :    TList *List;
: : : : :    TIdContext *AContext;
: : : : :    int Loop;
: : : : :    List = IdTCPServer1->Contexts->LockList() ;
: : : : :
: : : : :    try
: : : : :     {
: : : : :     for(Loop =0;Loop<List->Count;Loop++)
: : : : :         {
: : : : :           AContext = (TIdContext *) List->Items[Loop];
: : : : :           AContext->Connection->IOHandler->WriteLn(Text);
: : : : :         }
: : : : :     }
: : : : :     __finally
: : : : :     {
: : : : :        IdTCPServer1->Contexts->UnlockList();
: : : : :     }
: : : : : }
: : : : : //---------------------------------------------------------------------------
: : : : : void __fastcall TForm1::IdTCPServer1Execute(TIdContext *AContext)
: : : : : {
: : : : :
: : : : :     AnsiString Temp ;
: : : : :     Temp = AContext->Connection->IOHandler->ReadLn();
: : : : :     SandToAll(Temp);
: : : : : }
: : : : :
: : : : : TList는 쓰레드에서는 TThreadList로 대체해서 사용해야된다고 들었는데
: : : : :
: : : : : TList를 TThreadList로 마냥 대체할려고하니깐 오류가 발생하네요
: : : : : TThreadList에서는 Count멤버변수도 없고
: : : : : IdTCPServer1->Contexts->LockList() 는 TList* 를 리턴해주는데 어떻게 해야될지 감이 안잡힙니다

+ -

관련 글 리스트
67587 TList를 TThreadList로 대체할수없는건가요? 똑똑 1143 2012/06/19
67591     Re:TList를 TThreadList로 대체할수없는건가요? 축구 1175 2012/06/19
67589     Re:TList를 TThreadList로 대체할수없는건가요? Intotheblue 1373 2012/06/19
67590         Re:Re:TList를 TThreadList로 대체할수없는건가요? 똑똑 1137 2012/06/19
67593             Re:Re:Re:TList를 TThreadList로 대체할수없는건가요? 축구 1147 2012/06/19
67592             Re:Re:Re:TList를 TThreadList로 대체할수없는건가요? Intotheblue 1125 2012/06/19
67594                 Re:Re:Re:Re:TList를 TThreadList로 대체할수없는건가요? 똑똑 1130 2012/06/19
67595                     Re:Re:Re:Re:Re:TList를 TThreadList로 대체할수없는건가요? Intotheblue 1730 2012/06/19
67588     Re:TList를 TThreadList로 대체할수없는건가요? Lyn 1160 2012/06/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.