ControlChannelTrigger 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
可讓建立 TCP 連線的物件在背景接收即時通知,並想要收到連入流量的通知。
使用ControlChannelTrigger之前,請先呼叫**BackgroundExecutionManager.RequestAccessAsync**。
注意
Windows Phone不支援此類別。
public ref class ControlChannelTrigger sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(Windows.Networking.Sockets.IControlChannelTriggerFactory, 65536, Windows.Networking.Sockets.ControlChannelTriggerContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Networking.Sockets.ControlChannelTriggerContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
class ControlChannelTrigger final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Networking.Sockets.ControlChannelTriggerContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Networking.Sockets.IControlChannelTriggerFactory, 65536, "Windows.Networking.Sockets.ControlChannelTriggerContract")]
class ControlChannelTrigger final : IClosable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Networking.Sockets.IControlChannelTriggerFactory), 65536, typeof(Windows.Networking.Sockets.ControlChannelTriggerContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Networking.Sockets.ControlChannelTriggerContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
public sealed class ControlChannelTrigger : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Networking.Sockets.ControlChannelTriggerContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Networking.Sockets.IControlChannelTriggerFactory), 65536, "Windows.Networking.Sockets.ControlChannelTriggerContract")]
public sealed class ControlChannelTrigger : System.IDisposable
Public NotInheritable Class ControlChannelTrigger
Implements IDisposable
- 繼承
- 屬性
- 實作
Windows 需求
裝置系列 |
Windows Desktop Extension SDK (已於 10.0.10240.0 引進)
Windows Mobile Extension SDK (已於 10.0.10240.0 引進) |
API contract |
Windows.Networking.Sockets.ControlChannelTriggerContract (已於 v1.0 引進)
|
備註
當應用程式不是前景應用程式時,ControlChannelTrigger 類別和相關介面可用來讓應用程式使用網路。 通用 Windows 應用程式通常會在前景應用程式中不再暫停,並移至背景。 有一些例外狀況是暫停應用程式 (主動列印、存取音訊資料流程,以及傳輸背景中的檔案,例如) 。 ControlChannelTrigger 類別允許已建立 TCP 連線的網路應用程式,以通知系統已建立的網路連線應該保持運作狀態,而且系統應該在收到應用程式的網路資料或伺服器保持運作計時器間隔到期時喚醒暫停的應用程式。 當您的應用程式需要在背景中維護網路連線時,請使用控制通道觸發程式。
雖然 ControlChannelTrigger 類別可以搭配DatagramSocket、StreamSocket或StreamSocketListener使用,但Windows 10為使用這些類別且想要在背景中維護連線的應用程式提供改良的機制。 如需SocketActivityTrigger和通訊端代理程式的詳細資訊,請參閱背景中的網路通訊。
建立 TCP 連線的下列實例建議使用 ControlChannelTrigger 類別:
- Windows.Web.Http命名空間中的HttpClient類別。
- .NET Framework System.Net.Http命名空間中的HttpClient和HttpClientHandler類別。 也支援衍生自這些類別的自訂類別。
- IXMLHTTPRequest2介面。 IXMLHTTPRequest2介面是 XMLHttpRequest 物件的延伸模組,定義于 World Wide Web Consortium (W3C)
有數種類型的保持運作間隔可能與網路應用程式相關。 在最低層級,應用程式可以設定 TCP 保持運作選項,在用戶端應用程式與伺服器之間傳送 TCP 保持運作封包,以維護未使用的已建立 TCP 連線。 HttpClient類別和 XMLHttpRequest JavaScript 物件沒有啟用 TCP 保持運作的選項,而且此選項預設為停用。 必須停用 TCP 保持運作,才能使用 ControlChannelTrigger 類別來支援背景網路通知。
在 ControlChannelTrigger 類別的內容中,有兩個其他持續運作間隔會影響。
- 伺服器保持運作間隔 - 這是指應用程式向系統註冊的保持運作間隔,以在應用程式暫停時要喚醒的頻率。 系統會根據針對此保持運作間隔設定的值喚醒應用程式。 這個值是由 ControlChannelTrigger 類別上的 ServerKeepAliveIntervalInMinutes 屬性工作表示,並且設定為 ControlChannelTrigger 建構函式的引數。 此值會被視為伺服器保持運作間隔,因為網路應用程式通常會根據應用程式建立 TCP 連線的伺服器已知行為來設定此值。 例如,如果已知 Web 服務器會在應用程式沒有傳送資料 30 分鐘時中斷連線並卸載 TCP 連線,則網路應用程式可以將此伺服器保持運作間隔設定為 25 分鐘。
- 網路保持運作間隔 - 這是指根據目前網路狀況,在 TCP 堆疊中由低階網路元件維護的內部保持運作計時器。 這個值代表網路媒介需要的值,以維持 TCP 連線不變。 這些網路媒介代表硬體和裝置,例如網路 Proxy 和網路位址翻譯工具。 網路應用程式無法設定此值,因為此值是由 TCP 堆疊中的低階系統元件動態決定。 網路保持運作間隔的內部計算會考慮伺服器保持運作間隔。 網路應用程式可以向系統指出,如果定期卸載已建立的 TCP 連線,應該減少網路保持運作計時器,方法是在 ControlChannelTrigger 類別上呼叫 DecreaseNetworkKeepAliveInterval 方法。
版本歷程記錄
Windows 版本 | SDK 版本 | 已新增值 |
---|---|---|
1607 | 14393 | IsWakeFromLowPowerSupported |
建構函式
ControlChannelTrigger(String, UInt32) |
使用控制通道觸發程式識別碼和伺服器保持運作間隔的值,建立新的 ControlChannelTrigger 物件。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType) |
使用控制通道觸發程式識別碼、伺服器保持運作間隔的值,以及控制通道觸發程式所要求的資源類型,建立新的 ControlChannelTrigger 物件。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
屬性
ControlChannelTriggerId |
取得字串,可用來區分本機電腦上的各種控制通道觸發程式。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
CurrentKeepAliveIntervalInMinutes |
根據目前的網路狀況,取得網路保持運作間隔,以分鐘為單位,由 TCP 堆疊中的低階網路元件維護。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
IsWakeFromLowPowerSupported |
取得值,指出是否支援從低電源狀態喚醒。 |
KeepAliveTrigger |
取得 物件,表示與 ControlChannelTrigger 物件相關聯的保持運作觸發程式,應用程式應該用來系結啟用類別與背景訊息代理程式基礎結構。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
PushNotificationTrigger |
取得 物件,表示與 ControlChannelTrigger 物件相關聯的推播通知觸發程式,應用程式應該用來系結啟用類別與背景訊息代理程式基礎結構。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
ServerKeepAliveIntervalInMinutes |
取得或設定伺服器保持運作間隔,以分鐘為單位向系統註冊,以指出使用的應用程式和相關聯的網路連線何時應該喚醒。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
TransportObject |
取得系統用於 與 ControlChannelTrigger 物件相關聯之傳輸連接的傳輸物件。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
方法
Close() |
關閉 ControlChannelTrigger 物件。 注意 Windows Phone不支援此方法。 |
DecreaseNetworkKeepAliveInterval() |
提供一種方式,讓應用程式指出系統維護的網路保持運作間隔與網路媒介喚醒太長,而且應該減少。 這個方法適用于 Windows.Networking.Sockets 和相關命名空間中的類別專案。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
Dispose() |
執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。 |
FlushTransport() |
排清與 ControlChannelTrigger 相關聯的傳輸連線與網路堆疊相關聯的任何網路資料。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
UsingTransport(Object) |
設定 Windows.Networking.Sockets 和相關命名空間中類別專案所要使用的控制通道觸發程式所使用的傳輸連線。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |
WaitForPushEnabled() |
允許代理程式更新系統已建立連線,而且系統應該完成控制通道觸發程式的內部設定。 注意 Windows Phone不支援 ControlChannelTrigger 類別。 |