2015-01-05 4 views
4

Windows 저장소 응용 프로그램의 별도 프로젝트 (dll)에 백그라운드 작업이 있습니다.백그라운드 작업이 동시에 실행 중일 때 포 그라운드에서 이벤트를 트리거합니까?

푸시 알림을 받으면 내 백그라운드 작업이 트리거됩니다. 앱이 사용되지 않는 동안 발생하는 대부분의 시간. 알림이 저장되고 앱이 다시로드되면받은 내용에 따라 작업이 실행됩니다. LocalSettings로 구현하기 쉽습니다. 응용 프로그램은로드 할 때 무언가가 저장되어 있는지 확인할 수 있습니다.

그러나 응용 프로그램이 포 그라운드에있을 때 실제 응용 프로그램에서 무언가를 트리거하려고합니다. LocalSettings를 계속 보지 않고도, 태스크가 메인 어플리케이션과 통신하여 뭔가를 트리거 할 수있는 메커니즘이 있습니까?

답변

1

구체적인 질문이 없으면 구체적인 조언을 제공하는 것이 어렵습니다.

그러나 WinRT에서는 소켓을 사용하여 백그라운드 프로세스와 포 그라운드 프로세스간에 통신하는 것이 최선의 선택이라고 생각합니다. 명명 된 파이프가 좋지만 WinRT에서 지원되지 않는 것 같습니다.

WinRT에서 지원되는 또 다른 대안은 명명 된 뮤텍스입니다. 하지만 데이터를 전송할 수는 없습니다. 한 프로세스에서 다른 프로세스로 어떤 종류의 신호를 제공하는 데만 사용될 수 있으며 소켓은 비동기 적으로 사용될 수 있지만 mutex에서 대기하는 비동기 메커니즘은 기본적으로 내장되어 있지 않습니다.

그래서 이러한 유형의 알림에는 소켓 기반 방식이 더 적합합니다.

저는 WinRT에서 실제로 이런 종류의 작업을 다른 컨텍스트에서 수행하지 않았습니다. 그러나 WinRT는 동일한 패키지의 두 프로그램 간의 통신 만 허용한다는 한계가 있습니다. 이 점에 대해 좀 더 자세히 알아 보려면 Is there any Inter Process Communication mechanism available in Metro Style App?을 참조하십시오. 실제로 소켓에 적용되는지 아닌지는 분명하지 않으며, 테스트하지 않았습니다. 당신이 시도해보기에 충분히 쉬울 것입니다.

WNS : Sending notifications (Windows Runtime apps)을 사용할 수도 있습니다. 귀하의 목적을 위해서는 "지역 알림"모델이 적절할 것이라고 생각합니다. 대부분의 알림 설명서는 UI 기반 알림 (타일, 배지 및 토스트)에만 해당되는 것으로 보이지만 기본 '원시'알림 API도 있습니다. Windows.Networking.PushNotifications namespace

관련 문제