|
이해가 잘되지않는데 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* 를 리턴해주는데 어떻게 해야될지 감이 안잡힙니다
|