簡體   English   中英

同時運行后台任務時在前台觸發事件?

[英]Triggering event in foreground when background task is running at the same time?

我在Windows存儲應用程序的單獨項目(dll)中有后台任務。

收到推送通知時,將觸發我的后台任務。 在不使用應用程序時發生的大部分時間。 通知將保存,並在再次加載應用程序時,將根據收到的內容觸發操作。 使用LocalSettings可以輕松實現,應用程序可以檢查是否在加載時存儲了某些內容。

但是,當應用程序處於前台時,我想在實際的應用程序中觸發一些操作。 如果不經常查看LocalSettings,是否可以使用一種機制使任務與主應用程序通信以觸發某些內容?

沒有一個更具體的問題,很難提供具體的建議。

但是,我相信在WinRT上,最好的選擇是使用套接字在后台進程和前台進程之間進行通信。 最好使用命名管道,但WinRT似乎不支持該命名管道。

WinRT支持的另一種替代方法是命名互斥體。 但這不能傳輸數據。 它只能用於從一個進程向另一個進程提供某種信號,並且沒有內置的異步機制來等待互斥鎖,而套接字可以異步使用。

因此,恕我直言,基於套接字的方法是此類通知的更好選擇。

我實際上沒有在WinRT上專門做過這種事情,只是在其他情況下。 但是,您可能遇到的一個限制似乎是WinRT僅允許來自同一程序包的兩個程序之間的通信。 請參閱Metro Style App中是否有可用的進程間通信機制? 關於這一點的更多細節。 我尚不清楚這是否真的適用於套接字,我還沒有對其進行測試。 不過,嘗試起來很容易。

另一種選擇是使用WNS: 發送通知(Windows運行時應用程序) 為了您的目的,我認為“本地通知”模型是合適的。 大多數通知文檔似乎都是特定於基於UI的通知(平鋪,徽章和吐司),但是還有一個基本的“原始”通知API: Windows.Networking.PushNotifications命名空間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM