2012-11-19 2 views
0

나는 장치가 네트워크에서 데이터를 읽을 때 얼어 버리는 간단한 windows mobile 5 응용 프로그램을 가지고 있습니다. 네트워크가 패킷을 반복적으로 삭제하고 응용 프로그램이 읽기 호출을 차단하고 있습니다.windows mobile 5 장치가 소켓에서 읽기가 멈춤

응용 프로그램 내에서 또는 인터럽트 (키 누르기 조합)를 통해 OS 레벨에서이 응용 프로그램을 종료하고 싶습니다. 이 메커니즘을 통합 할 수있는 간단한 방법이 있는지 알 수 있습니다.

+0

살은, 코드의 약간은 당신이 소켓에 연결하기 위해 사용하는 우리 (조세 또는 자신)이 주를 차단하지 않도록 스레드를 사용하여이 작업을 수행하는 방법을 표시 할 수 있습니다 보여 비동기 네트워크 호출을 취소 할 수 있습니다. – jp2code

답변

1

불행히도 소켓 코드를 게시하지 않았습니다. 비동기 호출을 사용하지 않는 한 소켓 액세스는 차단됩니다. 주 스레드를 계속 실행하려면 소켓 호출을 별도의 스레드에 배치해야합니다.

여기에 배경을 제공 할 수 있습니다 : http://www.hjgode.de/wp/2010/06/01/mobile-development-easy-to-use-background-thread-with-gui-update/ 간단한 핑이 백그라운드에서 수행됩니다. IcmpSendEcho에 대한 호출이 차단되지만 별도의 스레드에서 수행되므로 GUI가 여전히 사용 가능하며 'ping'이 반환되면 이벤트가 실행됩니다.

~ 조세프

+0

정보에 대해 Josef에게 감사드립니다. 독서 스레드가 소켓에서 읽으려고하는 것을 차단한다는 것을 이해합니다. 받아 들일 수있는 thats. – user1069861

+0

Josef에게 감사드립니다. 독서 스레드가 소켓에서 읽으려고하는 것을 차단한다는 것을 이해합니다. 받아 들일 수있는 thats. 이제 요구 사항은 어떤 종류의 하드웨어 인터럽트 나 소프트웨어 인터럽트로 읽기가 차단 된 애플리케이션을 죽이는 것입니다. 만약 어떤 사람이 파일이나 소켓을 읽는 것과 같은 어떤 활동에 부딪 치는 윈도우 모바일 장치에서 인터럽트를 생성하고 처리하는 것에 대해 힌트를 줄 수 있다면 – user1069861