ControlChannelTrigger Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Permet de recevoir des notifications en temps réel en arrière-plan pour les objets qui établissent une connexion TCP et souhaitent être avertis du trafic entrant.
Appelez **BackgroundExecutionManager.RequestAccessAsync** avant d’utiliser ControlChannelTrigger.
Notes
Cette classe n’est pas prise en charge sur 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
- Héritage
- Attributs
- Implémente
Configuration requise pour Windows
Famille d’appareils |
Windows Desktop Extension SDK (introduit dans 10.0.10240.0)
Windows Mobile Extension SDK (introduit dans 10.0.10240.0) |
API contract |
Windows.Networking.Sockets.ControlChannelTriggerContract (introduit dans v1.0)
|
Remarques
La classe ControlChannelTrigger et les interfaces associées sont utilisées pour permettre à votre application d’utiliser le réseau lorsque votre application n’est pas l’application de premier plan. Une application Windows universelle est normalement suspendue lorsqu’elle n’est plus dans l’application de premier plan et déplacée vers l’arrière-plan. Il existe quelques exceptions à la suspension d’une application (impression active, accès à un flux audio et transfert de fichiers en arrière-plan, par exemple). La classe ControlChannelTrigger permet à une application réseau qui a établi une connexion TCP d’informer le système qu’une connexion réseau établie doit être maintenue opérationnelle et que le système doit mettre en éveil l’application suspendue lorsque des données réseau sont reçues pour l’application ou que l’intervalle du minuteur de conservation du serveur expire. Utilisez des déclencheurs de canal de contrôle lorsque votre application a besoin de maintenir une connexion réseau même si elle se trouve en arrière-plan.
Bien que la classe ControlChannelTrigger puisse être utilisée avec DatagramSocket, StreamSocket ou StreamSocketListener, Windows 10 fournit un mécanisme amélioré pour les applications qui utilisent ces classes et souhaitent maintenir les connexions en arrière-plan. Pour plus d’informations sur SocketActivityTrigger et le répartiteur de socket, consultez Communications réseau en arrière-plan.
Il est recommandé d’utiliser la classe ControlChannelTrigger par les instances des éléments suivants qui établissent une connexion TCP :
- Classe HttpClient dans l’espace de noms Windows.Web.Http .
- Classes HttpClient et HttpClientHandler dans l’espace de noms System.Net.Http dans le .NET Framework. Les classes personnalisées qui dérivent de ces classes sont également prises en charge.
- Interface IXMLHTTPRequest2 . L’interface IXMLHTTPRequest2 est une extension de l’objet XMLHttpRequest défini dans plusieurs brouillons de travail publiés par le World Wide Web Consortium (W3C)
Il existe plusieurs types d’intervalles de conservation en vie qui peuvent être liés aux applications réseau. Au niveau le plus bas, une application peut définir une option de conservation TCP pour envoyer des paquets tcp keep-alive entre une application cliente et un serveur afin de maintenir une connexion TCP établie qui n’est pas utilisée. La classe HttpClient et l’objet JavaScript XMLHttpRequest n’ont pas d’option pour activer tcp keep-alive et cette option est désactivée par défaut. La conservation TCP doit être désactivée pour pouvoir utiliser la classe ControlChannelTrigger pour prendre en charge les notifications réseau en arrière-plan.
Dans le contexte de la classe ControlChannelTrigger, il existe deux autres intervalles de conservation qui ont un impact.
- Intervalle de conservation du serveur : il s’agit d’un intervalle de conservation en durée de vie en minutes que l’application inscrit auprès du système pour connaître la fréquence à laquelle être réveillée lorsque l’application a été suspendue. Le système réveille l’application en fonction de la valeur définie pour cet intervalle de conservation. Cette valeur est représentée par la propriété ServerKeepAliveIntervalInMinutes sur une classe ControlChannelTrigger et est définie en tant qu’argument du constructeur ControlChannelTrigger. Cette valeur est considérée comme un intervalle de conservation du serveur, car une application réseau peut normalement le définir en fonction du comportement connu du serveur sur lequel l’application a établi une connexion TCP. Par exemple, s’il est connu qu’un serveur web déconnecte et supprime les connexions TCP si aucune donnée n’est envoyée par l’application pendant 30 minutes, l’application réseau peut définir cet intervalle de conservation du serveur sur 25 minutes.
- Intervalle de conservation du réseau : il s’agit d’un minuteur de conservation interne géré par des composants réseau de bas niveau dans la pile TCP en fonction des conditions réseau actuelles. Cette valeur représente la valeur requise par les intermédiaires réseau pour conserver la connexion TCP intacte. Ces intermédiaires réseau représentent du matériel et des appareils tels que les proxys réseau et les traducteurs d’adresses réseau. Une application réseau ne peut pas définir cette valeur, car cette valeur est déterminée dynamiquement par les composants système de bas niveau dans la pile TCP. Le calcul interne de l’intervalle de conservation du réseau prend en compte l’intervalle de conservation du serveur. Une application réseau peut indiquer au système que le minuteur de maintien en vie du réseau doit être diminué si les connexions TCP établies sont régulièrement supprimées en appelant la méthode DecreaseNetworkKeepAliveInterval sur une classe ControlChannelTrigger.
Historique des versions
Version de Windows | Version du SDK | Valeur ajoutée |
---|---|---|
1607 | 14393 | IsWakeFromLowPowerSupported |
Constructeurs
ControlChannelTrigger(String, UInt32) |
Crée un objet ControlChannelTrigger avec un ID de déclencheur de canal de contrôle et une valeur pour l’intervalle de conservation du serveur. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType) |
Crée un objet ControlChannelTrigger avec un ID de déclencheur de canal de contrôle, une valeur pour l’intervalle de conservation du serveur et le type de ressource demandé pour le déclencheur de canal de contrôle. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
Propriétés
ControlChannelTriggerId |
Obtient une chaîne qui peut être utilisée pour différencier différents déclencheurs de canal de contrôle sur l’ordinateur local. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
CurrentKeepAliveIntervalInMinutes |
Obtient l’intervalle de conservation du réseau, en minutes, géré par les composants réseau de bas niveau dans la pile TCP en fonction des conditions réseau actuelles. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
IsWakeFromLowPowerSupported |
Obtient une valeur indiquant si la sortie d’états de faible puissance est prise en charge. |
KeepAliveTrigger |
Obtient un objet qui représente le déclencheur keep-alive associé à l’objet ControlChannelTrigger qu’une application doit utiliser pour lier la classe d’activation à l’infrastructure broker en arrière-plan. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
PushNotificationTrigger |
Obtient un objet qui représente le déclencheur de notification Push associé à l’objet ControlChannelTrigger qu’une application doit utiliser pour lier la classe d’activation à l’infrastructure broker en arrière-plan. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
ServerKeepAliveIntervalInMinutes |
Obtenez ou définissez l’intervalle de conservation du serveur, en minutes, inscrit auprès du système pour indiquer quand l’application et les connexions réseau associées utilisées doivent se réveiller. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
TransportObject |
Obtient l’objet de transport que le système utilise pour la connexion de transport associée à l’objet ControlChannelTrigger . Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
Méthodes
Close() |
Ferme l’objet ControlChannelTrigger . Notes Cette méthode n’est pas prise en charge sur Windows Phone. |
DecreaseNetworkKeepAliveInterval() |
Fournit un moyen pour une application d’indiquer que l’intervalle de maintien en vie du réseau géré par le système avec des intermédiaires réseau pour se réveiller était trop long et devrait être réduit. Cette méthode s’applique aux éléments de classe dans Windows.Networking.Sockets et les espaces de noms associés. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
Dispose() |
Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées. |
FlushTransport() |
Vide toutes les données réseau utilisées par la connexion de transport associée à ControlChannelTrigger dans la pile réseau. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
UsingTransport(Object) |
Définit la connexion de transport à utiliser par un déclencheur de canal de contrôle par les éléments de classe dans Windows.Networking.Sockets et les espaces de noms associés. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |
WaitForPushEnabled() |
Permet à une application d’informer le système qu’une connexion a été établie et que le système doit terminer la configuration interne du déclencheur de canal de contrôle. Notes La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone. |