반복문으로 대기를 하는 것도 가능하지만, 이렇게 되면 CPU가 의미없이 스핀을 돌면서 프로세스 점유율이 급상승하는 문제가 생깁니다.
이를 방지하기 위해서는 앞서 @dimohy 님께서 말씀해주신 것처럼 ManualResetEvent나 AutoResetEvent 같은 스레드 신호 제어기를 이용해서 신호가 들어왔을 때만 스레드가 이어서 실행되도록 관리해주는 것이 필요합니다.
아니면 면밀하게 제어하는 것이 어려울 경우 지금 해볼 수 있는 나이브한 구현 방식으로 Thread.Sleep을 이용해서 너무 길거나 짧지 않게 delay를 주고 while (true) 문을 프로그래밍하는 방법을 대안으로 생각해볼 수 있습니다. 이 경우, 연결이 제대로 처리되지 않을 가능성은 있지만 가볍게 개념 검증하기 위한 목적으로는 대신 택할 수 있으니 생각하는 구현 방식이 맞는지 간단히 점검해보는 용도로는 채택해보실 수 있는 나이브한 구현 방식이 될 것 같습니다.