2009-09-13 4 views
0

서버/클라이언트 스타일 프로그램 작성을 사용하고 있으며 TCP 연결을 사용합니다.지속적으로 TCP 서버 스크립트를 실행하지만 CPU 사용량이 낮음

이제 서버는 this과 비슷하지만 하나의 요청을 수신 할 때까지만 수신 대기합니다. 내 문제는 하나의 메시지를 수신 할 때까지 수신 대기 한 다음 종료하는 것입니다. 더 큰 문제는 지연이지만, 연결을 닫을 때까지 양식과 상호 작용할 수 없습니다. 더 나은 단어가 부족하여 "수동적으로"듣는 방법이 있습니까? 나는 그것이 CPU의 톤을 차지하고 싶지 않아요.

도움 주셔서 감사합니다.

이것은 VB에서입니다.

답변

2

Windows에서 키 누르기, 마우스 클릭 및 이동 등과 같은 이벤트는 이벤트 처리 전용 스레드에 이벤트 (메시지)로 전송됩니다. 해당 스레드가 메시지를 처리하는 데 오랜 시간이 걸리는 경우 (TCP 요청이 들어 오기를 기다리는 것처럼) 스레드는 해당 작업이 완료 될 때까지 "차단"하여 전체 사용자 인터페이스를 근본적으로 차단합니다.

TCP 수신을 처리하기 위해 양식을 실행하는 스레드와 별도의 스레드를 설정해야합니다. Vb.Net에있는이 tutorial on threading은 올바른 방향으로 향해야합니다.

+0

스레딩 했어요. 감사!!!!! – Cyclone

0

TcpListener 클래스를 살펴보고 Pending 메소드에 표시된 코드도 확인하십시오.

UI 스레드가 UI 응답 성을 유지하도록하려면 스레드를 사용하여이 모든 것을 처리하는 것이 좋습니다.

관련 문제