소스가없는 제 3 자 프레임 워크를 사용하고 있습니다 (사용이 필요합니다). 타사 프레임 워크는 인증 된 클라이언트/서버 연결 만들기를 처리하고 열린 NSStream 쌍을 반환합니다. 내가 가지고있는 과제는 NSStream이 주 스레드에서 예약된다는 것입니다 (UI가 응답하지 않을 수있는 상황을 만듭니다 - 나는 피하고 싶습니다).주 스레드에서 예약 된 열려 있지만 비활성 상태의 NSStream을 다른 스레드로 이동할 수 있습니까?
스트림이 제 3 자 프레임 워크에서 전달 될 때 네트워크 트래픽이 진행되지 않습니다. 그래서 NSStream을 스케줄을 취소하고 재 스케줄링 할 수 있는지 궁금합니다.
열려있는 NSStream의 스케줄을 취소하고 다른 스레드의 다른 실행 루프에서 일정을 다시 잡을 수 있다면 누구에게 알 수 있습니까? 그게 문제를 일으킬까요? 거기에 어떤 코드 예제가 있습니까?
미리 감사드립니다.
아론
는
실제로 스레드에서 일정을 예약하고 있습니까? 방금 차단하는 경우 함수 호출에 NSInvocationOperation을 사용하여 차단하지 않도록 할 수 있습니다. – heckman
@heckman 나는 당신의 질문을 이해하고 있는지 확신하지 못합니다. NSInputStream과 NSOutputStream을 받고 있습니다. 둘 다 NSStreamStatusOpen 상태를받습니다. 전송하기 시작할 때까지 스트림에 트래픽이 없으므로 효과적으로 스테이 시스 상태에 있습니다. 주 스레드에 있기 때문에 대리인 메시지를 받거나 서비스 할 때 차단 상황이 발생합니다. – xyzzycoder
아래의 응답을 참조하십시오. – heckman