지금 전화선을 통한 모뎀 통신 프로그램을 만들고 있는데요...
메인스레드에서는 통신에 관련된 모든 이벤트를 처리하고...
메인폼 생성시에 스레드를 하나 만들어(TSocketThread)
클라이언트와의 소켓 통신에 관련된 모든 처리를 하려고 합니다.
근데 메인폼에 있는 TServerSocket 의 이벤트 처리도 새로 생성된(TSocketThread) 에서
이벤트 처리가 가능한지요?
그래야, 메인스레드는 통신에 관련된 모든 처리를 담당하지 않을까요?
예를들어, 아래 부분을요?
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ListBox1.Items.Add ('Connected: ' +
Socket.RemoteHost + ' (' +
Socket.RemoteAddress + ')' );
end;
당연히 가능합니다.
다만 쓰레드내에서 메인쓰레드에 있는 객체를 접근할때는 Synchronize를 이용해서 호출해야한다는 것만 주의하시면 됩니다.
^^ 항상 즐코하세요...