2009-10-14 3 views
1

우리는 Windows CE 6 장치에서 .NET Compact Framework 2.0과 함께 C#을 사용하고 있습니다. 서버와 장치간에 데이터를 전송해야 할 때 RasDial 호출을 사용하여 GPRS 연결을 설정합니다.C# : RasDial 호출을 취소하는 방법?

이 모든 것이 잘 작동합니다. 그러나 때로는 신호가 없을 때 RasDial에 대한 전화는 영원히 걸리고 장치를 웜 부팅하면 멈출 수 있습니다. 고객이 다이얼 프로세스를 취소 할 수 있도록 표시하는 상태 창에 "취소"버튼을 추가하길 원합니다.

질문 : 어떻게? RasDial은 동기 호출이며 요청을 취소하는 방법이 표시되지 않습니다. 한 가지 해결책은 별도의 스레드에서 호출을 수행하고 사용자가 "취소"버튼을 누를 때 해당 스레드를 중단하는 것입니다. 그러나 이는 매우 좋은 해결책으로 보이지 않습니다.

의견이 있으십니까?


현재 내가 나를 다이얼을 (RasDial에 비동기 호출을) 취소 RasHangup를 사용할 수 있도록 것이라고 나는 어쨌든 프로젝트에 추가 한 C++ 라이브러리에 기능을 추가하기 위해 노력하고있어 편집
.

별도의 C++ DLL이나 제 3 자 라이브러리가없는 표준 C#/.NET Framework에서이 작업을 수행하는 방법에 대한 의견이 있으십니까? 2

편집 그냥 .NET Compact Framework에서 2.0에 MessageWindow 클래스를 발견 - 나는 상태 메시지를 수신하기 위해이의 서브 클래스를 사용하려고합니다.

EDIT 3
내 요구에 MessageWindow를 사용하는 방법을 일했고 지금은 연결 과정에 대해 비동기 알림을받을 수 있습니다. 내가 직접 해결 한 것 같습니다 .-D

답변

2

OpenNETCF RAS library over on CodePlex을 살펴보십시오. 그것은이 모든 것을 끝냈습니다.

+0

불행히도 제 3 자 라이브러리를 사용할 수 없지만 비동기 상태 메시지를 수신하기 위해 MessageWindow 클래스를 사용했습니다. –

+0

오케이, 그래서 나는 그것을 어리석은 규칙이라고 부릅니다. 소스를 무료로 사용할 수 있다면 왜 우리가 그럴 수 없습니까? 코드를 작성하는 데 시간을 낭비하게하기 위해? 당신이 RAS 전문가가되고 싶지 않다면 그것의 가치는 0입니다. – ctacke

+0

참 - 어리석은 규칙. 그러나 우리 모두가 우리의 경력 중에 어리석은 요구 사항을 만난 적이 있습니까? ;-) 나는 어쨌든 당신의 언사를 받아 들일 것입니다. 그 바보 같은 요구 사항이 아니라면, 내가 따라야 할 완벽하게 좋은 충고입니다. –

관련 문제