답변 감사합니다.
locke 님이 쓰신 글 :
: TIdTCPServer는 멀티스레드 방식의 범용 소켓 컴포넌트입니다. (클라이언트 하나당 스레드 1개씩 생성)
: OnExecute 이벤트 자체가 스레드에서 호출하는 call back 함수라고 보시면 됩니다.
: 당연히 메인과 서브 스레드가 하나의 vcl을 동시에 사용하려고 한다면 충돌이 발생하죠.
: 충돌이 발생하지 않도록 하는 방법은 여러가지가 있고 또 해당 vcl을 특정 하나의 스레드에서만 제어한다면
: vcl 컨트롤(혹은 컴포넌트)자체가 메인스레드 소속이라도 충돌은 안일어납니다.
: 재량껏 작업하시면 될 듯 합니다.
: -locke
:
: 첫눈 님이 쓰신 글 :
: : TidTCPServer의 onExecute이벤트는 별도로 TThread객체를 만들어 주지 않아도 기본적으로 쓰레드 처리가 되는 것으로 알고있습니다.
: :
: : 즉, TidTCPServer의 onExecute안에서 처리해준 코드는 메인쓰레드가 아닌 새로운 쓰레드가 생성되어 처리된다고 이해하고 있는데요.
: :
: : 만일 그렇다면 TidTCPServer의 onExecute이벤트에서 VCL객체를 사용하려면
: : TThread객체에서 VCL객체를 사용할때 Syncronize처리하는 것 처럼
: : TidTCPServer의 onExecute에서도 Syncronize처리해야 하는건가요?
|