C#이 이벤트 중심 프로그래밍 언어라고 생각했습니다.메시지 또는 클라이언트 연결을 대기 중일 때 while (true) 루프를 반복하는 대신? (TcpClient C#)
는일의이 유형은 나에게 오히려 혼란과 비효율적 인 것 같다
tcpListener.Start();
while (true)
{
TcpClient client = this.tcpListener.AcceptTcpClient();
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientCommunication));
clientThread.Start(client);
}
가 나는 또한 새 메시지가 도착하기를 기다릴 때 물건의 같은 종류의 일을해야합니다. 분명히 이러한 함수는 스레드 내에 포함됩니다.
무한 루프와 CPU 사이클 낭비가 발생하지 않는 더 좋은 방법은 없을까요? 이벤트? 알림? 어떤 것? 그렇지 않다면 Thread.Sleep을 수행하는 것이 좋지 않은가? 그래서 거의 자주 처리되지 않습니까?
비동기 프로그래밍에 대해 알고 계십니까? – Marlon
불필요한 CPU 사이클이 무슨 뜻인지 확실치 않습니다. 'AcceptTcpClient'는 연결을 얻을 때까지 현재 쓰레드를 차단하고, 차단 된 동안 CPU 사이클을 사용하지 않습니다. –