Sprache

ControlChannelTrigger Klasse

Definition

Ermöglicht den Empfang von Echtzeitbenachrichtigungen im Hintergrund für Objekte, die eine TCP-Verbindung herstellen und über eingehenden Datenverkehr benachrichtigt werden möchten.

Rufen Sie **BackgroundExecutionManager.RequestAccessAsync** auf, bevor Sie ControlChannelTrigger verwenden.

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
Vererbung
Object Platform::Object IInspectable ControlChannelTrigger
Attribute
Implementiert

Windows-Anforderungen

Anforderungen Beschreibung
Gerätefamilie
Windows Desktop Extension SDK (eingeführt in 10.0.10240.0)
Windows Mobile Extension SDK (eingeführt in 10.0.10240.0)
API contract
Windows.Networking.Sockets.ControlChannelTriggerContract (eingeführt in v1.0)

Hinweise

Die ControlChannelTrigger-Klasse und zugehörige Schnittstellen werden verwendet, damit Ihre App das Netzwerk verwenden kann, wenn ihre App nicht die Vordergrund-App ist. Eine universelle Windows-App wird normalerweise angehalten, wenn sie sich nicht mehr in der Vordergrund-App befindet und in den Hintergrund verschoben wird. Es gibt einige Ausnahmen beim Anhalten einer App (aktives Drucken, Zugreifen auf einen Audiodatenstrom und Übertragen von Dateien im Hintergrund). Die ControlChannelTrigger-Klasse ermöglicht eine Netzwerk-App, die eine TCP-Verbindung eingerichtet hat, um das System darüber zu informieren, dass eine hergestellte Netzwerkverbindung betriebsbereit bleiben soll, und das System sollte die angehaltene App aufwachen, wenn Netzwerkdaten für die App empfangen werden oder das Server-Keep-Alive-Zeitgeberintervall abläuft. Verwenden Sie Steuerkanaltrigger, wenn Ihre App eine Netzwerkverbindung verwalten muss, auch wenn sie sich im Hintergrund befindet.

Während die ControlChannelTrigger-Klasse mit DatagramSocket, StreamSocket oder StreamSocketListener verwendet werden kann, bietet Windows 10 einen verbesserten Mechanismus für Apps, die diese Klassen verwenden und verbindungen im Hintergrund verwalten möchten. Details zu SocketActivityTrigger und dem Socketbroker finden Sie unter Netzwerkkommunikation im Hintergrund.

Die ControlChannelTrigger-Klasse wird empfohlen, von Instanzen des folgenden Typs verwendet zu werden, die eine TCP-Verbindung herstellen:

Es gibt mehrere Arten von Keep-Alive-Intervallen, die sich auf Netzwerk-Apps beziehen können. Auf der niedrigsten Ebene kann eine App eine TCP-Keep-Alive-Option festlegen, um TCP-Keep-Alive-Pakete zwischen einer Client-App und einem Server zu senden, um eine etablierte TCP-Verbindung aufrechtzuerhalten, die nicht verwendet wird. Die HttpClient-Klasse und das XMLHttpRequest-JavaScript-Objekt haben keine Option, TCP-Keep-Alive zu aktivieren, und diese Option ist standardmäßig deaktiviert. Der TCP-Keep-Alive muss deaktiviert werden, um die ControlChannelTrigger-Klasse zur Unterstützung von Hintergrundnetzwerkbenachrichtigungen zu verwenden.

Im Kontext der ControlChannelTrigger-Klasse gibt es zwei weitere Keep-Alive-Intervalle, die auswirkungen haben.

  • Server-Keep-Alive-Intervall – Dies bezieht sich in Minuten auf ein Keep-Alive-Intervall, das von der App beim System registriert wird, um zu erfahren, wie oft die App angehalten wird. Das System aktiviert die App basierend auf dem für dieses Keep-Alive-Intervall festgelegten Wert. Dieser Wert wird durch die ServerKeepAliveIntervalInMinutes-Eigenschaft einer ControlChannelTrigger-Klasse dargestellt und als Argument auf den ControlChannelTrigger-Konstruktor festgelegt. Dieser Wert wird als Server-Keep-Alive-Intervall betrachtet, da eine Netzwerk-App dies normalerweise basierend auf dem bekannten Verhalten des Servers festlegen kann, mit dem die App eine TCP-Verbindung hergestellt hat. Wenn beispielsweise bekannt ist, dass ein Webserver TCP-Verbindungen trennt und absetzt, wenn keine Daten von der App für 30 Minuten gesendet werden, kann die Netzwerk-App dieses Server-Keep-Alive-Intervall auf 25 Minuten festlegen.
  • Netzwerk-Keep-Alive-Intervall – Dies bezieht sich auf einen internen Keep-Alive-Timer, der von Netzwerkkomponenten auf niedriger Ebene im TCP-Stapel basierend auf aktuellen Netzwerkbedingungen verwaltet wird. Dieser Wert stellt den Wert dar, der von Netzwerkvermittlern benötigt wird, um die TCP-Verbindung intakt zu halten. Diese Netzwerkvermittler stellen Hardware und Geräte wie Netzwerkproxys und Netzwerkadressenübersetzer dar. Eine Netzwerk-App kann diesen Wert nicht festlegen, da dieser Wert dynamisch von Systemkomponenten auf niedriger Ebene im TCP-Stapel bestimmt wird. Die interne Berechnung des Netzwerk-Keep-Alive-Intervalls berücksichtigt das Server-Keep-Alive-Intervall. Eine Netzwerk-App kann dem System angeben, dass der Netzwerk-Keep-Alive-Timer verringert werden soll, wenn hergestellte TCP-Verbindungen regelmäßig gelöscht werden, indem die DecreaseNetworkKeepAliveInterval-Methode für eine ControlChannelTrigger-Klasse aufgerufen wird.

Versionsverlauf

Windows-Version SDK-Version Mehrwert
1607 14393 IsWakeFromLowPowerSupported

Konstruktoren

Name Beschreibung
ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType)

Erstellt ein neues ControlChannelTrigger -Objekt mit einer Steuerkanaltrigger-ID, einem Wert für das Server-Keep-Alive-Intervall und dem Ressourcentyp, der für den Steuerkanaltrigger angefordert wurde.

ControlChannelTrigger(String, UInt32)

Erstellt ein neues ControlChannelTrigger -Objekt mit einer Steuerkanaltrigger-ID und einem Wert für das Server-Keep-Alive-Intervall.

Eigenschaften

Name Beschreibung
ControlChannelTriggerId

Ruft eine Zeichenfolge ab, die verwendet werden kann, um verschiedene Steuerkanaltrigger auf dem lokalen Computer zu unterscheiden.

CurrentKeepAliveIntervalInMinutes

Ruft das Netzwerk-Keep-Alive-Intervall in Minuten ab, das von Netzwerkkomponenten auf niedriger Ebene im TCP-Stapel basierend auf aktuellen Netzwerkbedingungen verwaltet wird.

IsWakeFromLowPowerSupported

Ruft einen Wert ab, der angibt, ob das Aufwachen von Energiesparzuständen unterstützt wird.

KeepAliveTrigger

Ruft ein Objekt ab, das den Keep-Alive-Trigger darstellt, der dem ControlChannelTrigger -Objekt zugeordnet ist, das eine App zum Binden der Aktivierungsklasse mit der Hintergrundbrokerinfrastruktur verwenden soll.

PushNotificationTrigger

Ruft ein Objekt ab, das den Pushbenachrichtigungstrigger darstellt, der dem ControlChannelTrigger -Objekt zugeordnet ist, das eine App zum Binden der Aktivierungsklasse mit der Hintergrundbrokerinfrastruktur verwenden soll.

ServerKeepAliveIntervalInMinutes

Rufen Sie das Server-Keep-Alive-Intervall in Minuten ab, das beim System registriert ist, um anzugeben, wann die verwendete App und die zugehörigen Netzwerkverbindungen aktiviert werden sollen.

TransportObject

Ruft das Transportobjekt ab, das das System für die Transportverbindung verwendet, die dem ControlChannelTrigger -Objekt zugeordnet ist.

Methoden

Name Beschreibung
Close()

Schließt das ControlChannelTrigger -Objekt.

DecreaseNetworkKeepAliveInterval()

Bietet eine Möglichkeit für eine App, anzugeben, dass das vom System verwaltete Netzwerk-Keep-Alive-Intervall mit Netzwerkintermediären zu lang war und verringert werden sollte. Diese Methode gilt für Klassenelemente im Windows. Networking.Sockets und zugehörige Namespaces.

Dispose()

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind.

FlushTransport()

Löscht alle Netzwerkdaten, die von der Transportverbindung verwendet werden, die dem ControlChannelTrigger zugeordnet ist, zum Netzwerkstapel.

UsingTransport(Object)

Legt die Transportverbindung fest, die von einem Steuerkanaltrigger durch Klassenelemente im Windows verwendet werden soll. Networking.Sockets und zugehörige Namespaces.

WaitForPushEnabled()

Ermöglicht einer App, das System darüber zu benachrichtigen, dass eine Verbindung hergestellt wurde, und das System sollte die interne Konfiguration des Steuerkanaltriggers abschließen.

Gilt für:

Siehe auch