네트워크 기반 콘솔 기반 응용 프로그램을 만들려고하지만 동시에 표준 입력과 소켓 입력을 동시에들을 수 있어야합니다. C++에서는 posix select() 함수를 사용했지만 C#에서는 the equivalent select function이 소켓에만 사용됩니다. 여러 스레드를 사용하지 않고도 C#의 두 입력을 모두들을 수있는 방법이 있습니까?C#에서 표준 스레드와 소켓에서 동일한 스레드를 수신하는 방법은 무엇입니까?
1
A
답변
1
여러 입력을 기다리려면 각 입력에 대해 WaitHandle이 필요하며 정적 메서드 WaitHandle.WaitAny을 호출합니다.
그러나 다른 옵션은 비동기 IO를 사용하는 것입니다. BeginXXXX
을 사용하여 읽기/받기 작업을 시작하십시오. 완료 될 때마다 실행될 각 경우에 콜백을 제공합니다. 시작한 후에는 모니터 객체를 기다리고 콜백에서 해당 모니터 객체를 펄스하여 완료를 알립니다. 이것은 멀티 스레딩 프로그래밍의 매우 효율적인 형식이지만 스레드를 명시 적으로 시작할 필요는 없습니다.
표준 입력에 원시 스트림을 얻으려면 Console.OpenStandardInput을 사용하십시오.
관련 문제
- 1. .NET 소켓에서 둘 이상의 주소를 수신하는 방법은 무엇입니까?
- 2. 동일한 소켓에서 송수신하기
- 3. IIS에서 코드를 실행하는 데 동일한 스레드를 사용하는 방법은 무엇입니까?
- 4. 스레드와 JOptionPane간에 데이터를 공유하려면 스레드를 실행해야합니다!
- 5. 비동기 소켓에서 시간 초과를 처리하는 방법은 무엇입니까?
- 6. 추상 메소드를 수신하는 방법은 무엇입니까?
- 7. 객관적인 C에서 두 개의 다중 스레드를 동시에 실행하는 방법은 무엇입니까?
- 8. Python에서 스레드를 표준/표준으로 제한하는 방법
- 9. 데이터 길이가 알려지지 않은 경우 Perl의 소켓에서 데이터를 수신하는 가장 좋은 방법은 무엇입니까?
- 10. TCP/IP 소켓에서 들어오는 요청을 수신하는 Java EE에서 응용 프로그램을 만드는 방법은 무엇입니까?
- 11. 스레드를 동기화하는 방법은 무엇입니까?
- 12. 스칼라에서 SNMP 트랩을 수신하는 간단한 방법은 무엇입니까?
- 13. 동일한 IEnumerable 결과를 처리하는 다중 스레드를 갖는 방법은 무엇입니까?
- 14. Objective C에서 텍스트를 암호화하고 PHP에서 해독하는 표준 방법은 무엇입니까
- 15. C에서 다중 스레드를 만드는 방법 #
- 16. 부스트 : 표준 출력, 표준 오류 모두를 제어 할 수 있도록 스레드를 만드는 방법은 무엇입니까?
- 17. 펄 스레드는 커널 스레드와 동일한 이점이 있습니까?
- 18. iPhone iOS4.2의 특정 포트에서 수신하는 방법은 무엇입니까?
- 19. 다중 스레드에서 동일한 UDP 소켓에서 전송
- 20. C에서 연결 관리를 수행하는 좋은 방법은 무엇입니까?
- 21. 네이티브 소켓에서 Boost.Asio 소켓을 만드는 방법은 무엇입니까?
- 22. Solaris의 BSD 소켓에서 TCP_NODELAY를 설정하는 방법은 무엇입니까?
- 23. 스크립트를 삽입하여 activeX 이벤트를 수신하는 방법은 무엇입니까?
- 24. 특정 포트에서 Winsock을 수신하는 방법은 무엇입니까?
- 25. ComponentListener보다 componentShown/componentHidden 이벤트를 수신하는 방법은 무엇입니까?
- 26. listview 행에서 체크 박스를 수신하는 방법은 무엇입니까?
- 27. GWT 테이블에서 키보드 이벤트를 수신하는 방법은 무엇입니까?
- 28. MCU의 직렬 포트에서 패킷을 수신하는 방법은 무엇입니까?
- 29. Fennec 확장 프로그램의 페이지로드를 수신하는 방법은 무엇입니까?
- 30. COM 스레드와 .NET 동기화
이것은 좋은 해결책 인 것 같습니다. 네트워크 스트림을 사용하여이를 수행하는 방법을 보았습니다. 그러나 표준을 사용하여 동일한 작업을 수행하는 방법은 무엇입니까? – Nayruden
업데이트보기 (마지막 라인) –