|
스레드 문제 아니면 소스코드나 TClientSocket에 버그가 있는게 아닐까요?
zzang9un 님이 쓰신 글 :
: 요즘 버전에선 거의 안쓰지만...
: 예전 소스에 자주 사용했던 TClientSocket을 사용하다보니
: 이상한 현상을 발견해서 질문 드립니다.
:
: Client 소켓 2개를 사용해서 별도로
: Communication이라는 클래스를 만들었습니다.
: 여기에는 TClientSocket이 2개 들어있죠...
:
: 그런데....
: MainForm에서 Communication 클래스를 직접 생성해서
: 소켓의 Host, Port를 설정하고 Active를 true로 변경하면
: Active 값도 변경이 잘 되고 Server 접속이 잘 되는데....
:
: MainForm에서 별도 생성한 Thread에서
: Communication 클래스를 생성해서 똑같이 설정하고
: Active를 true로 변경하면 Active 변경이 true안되고 접속도 안됩니다.
:
: Communication 클래스는 동일한 것을 사용했으니...
: 차이라면... MainForm에서 생성한 경우와 Thread에서 생성한 경우인데...
: 어떤 문제가 있는 건지 잘 모르겠습니다...
:
: TClientSocket이 Thread 기반으로 되어 있다고 얼핏 들은 것 같습니다...
: 그렇더라도 다른 Thread에서 돌아가는 게 문제가 있나요??
: 왜 MainForm에서는 잘되는데 Thread에서는 안될까요?
: (Thread에서 Thread 생성하는 게 문제가 있는건지도 궁금하네요.. )
|