2009-06-03 4 views
2

Windows CE 5 장치에서 실행되는 모든 응용 프로그램에서 선택할 수있는 이벤트를 브로드 캐스트해야합니다.Windows CE에서 교차 프로세스를 통신하는 가장 좋은 메커니즘은 무엇입니까?

내가 전에 고려하지 않은 것이 있는지 사람들이 알기 위해 제안 할 기술을 아는 데 관심이 있기 전에이 작업을 수행하지 않았습니까?

이 이벤트를 수신해야하는 모든 응용 프로그램은 .NET Compact Framework 기반이므로 "관리 전용"솔루션을 고려할 수 있습니다.

답변

6

여기를 참조하십시오 Windows CE에서 IPC를위한 4 가지 옵션. CF 솔루션에 초점을 맞춰 보겠습니다.

  1. 소켓을 사용하십시오. 싱크의 존재에 대해 알 필요가있는 이벤트 소스 종류의 아픔입니다. 분명히 가장 선호하지 않는 옵션이며, 나는 그것을 거의 사용하지 않습니다.
  2. 명명 된 시스템 이벤트 (a-la CreateEvent API). 이것은 "this is on"과 같은 간단한 부울 유형 이벤트에서 작동합니다. CE는 이벤트 (SetEventData)와 32 비트 값을 연결할 수도 있다는 점에서 매우 좋습니다. 관리되는 구현의 경우 see this blog entry (실제 클래스는 in the SDF 임).
  3. 메모리 매핑 파일. 두 고객 프로젝트에서 사용한 적이있는 SDF has an implementation이므로 꽤 잘 테스트되었습니다. 언젠가 나는 그것을 사용하는 방법에 대한 블로그 게시물을해야하지만, 당신은 영리하고 아마도 문서에서 그것을 알아낼 수 있습니다.
  4. 지점 간 메시지 대기열. 이것들은 CE에 특화되어 있지만 시원한 방법입니다. 커널은 많은 시스템 요소들을 위해 커널을 사용한다. 그들은 매우 빠르고 강력합니다. 다시 the SDF has an implementation입니다. MSDN has an article on usage이지만 MSDN 코드에는 SDF가 수정 된 버그가 있음을 유념하십시오.
+0

안녕하세요, 저는 Windows Mobile에서 SetEvent()를 사용할 수 없음을 확인하고 싶습니다. 고맙습니다. –

+0

'SetEventData'는 WinMo를 포함한 모든 Windows CE 플랫폼에서 사용할 수 있습니다. – ctacke

1

내가 본 솔루션의 대부분은 맞춤형 메시징 프로토콜을 사용합니다.

.Net 소켓도 사용되었습니다.

컴팩트 프레임 워크 3.5에는 WCF가 있지만 제한이 있으며 신뢰할 수 없다는 의견이 많이 제기되었습니다.

대부분의 메커니즘에서 가장 큰 문제는 직렬화 버전입니다. 당신은 정말이

: 그래서 여기 다시,하지만 난 그것을 찾을 수 없습니다 - 여기, 뉴스 그룹, 블로그, 무엇인가 -

내가이 곳을 대답 한 맹세 CF 3.5

관련 문제