쓰레드안에서 소켓의 연결을 시도하면 윈도우가 종료되면서 오류가 발생합니다..
혹시 이유를 하시는분 계신지요 ?
질문이 너무 막연하죠 ??? ^^*;; 예문을 하나...
procedure TForm1.A;
begin
beginThread(ABC 쓰레드 생성)
end;
function ABC : integer;
begin
Form1.TcpSocket.host := 호스트;
Form1.TcpSocket.port := 포트
Form1.TcpSocket.connect를 합니다.
연결되면 작업한다.
Form1.TcpSocket.disconnect;
end;
프로그램을 종료하면 오류가 납니다. (OS별로 차이가 조금 있습니다.)
오류는 DestoryWindow인데 원인이 뭔지 모르겠습니다..
물론 연결을 밖에서 하면 오류가 나지 않습니다..
질문내용이 이상하면 리플 주세요.. -_-;;;
* 제생각
: 인디소켓을 보니 connect하는 부분에서 핸들러 생성하는 부분에 Self를 쓰더군요.. 아마 이부분때문인 것 같다고 생각이 드는데...TEST해보니 꼭 그래서 인것 같지는 않습니다..
안녕하세요..
작성하신 ABC 함수는 쓰레드의 멤버함수인가요?
그렇다고 가정하면 쓰레드의 멤버클래쓰나 함수가 아닌호출을 하실시는
안전하지 않으므로, Synchronize 로 ABC 함수를 호출해주시거나 혹은
소켓을 함수내에서 지역변수처럼 동적 생성시켜 사용하시면
해결 될거 같습니다.
후자를 추천드리구요..
그럼.. 즐거운 프로그래밍 하시길~