Freigeben über


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.

Hinweis

Diese Klasse wird auf Windows Phone nicht unterstützt.

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

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, um Ihrer App die Verwendung des Netzwerks zu ermöglichen, 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 (z. B. aktives Drucken, Zugreifen auf einen Audiodatenstrom und Übertragen von Dateien im Hintergrund). Die ControlChannelTrigger-Klasse ermöglicht es einer Netzwerk-App, die eine TCP-Verbindung hergestellt hat, das System zu benachrichtigen, dass eine hergestellte Netzwerkverbindung betriebsbereit bleiben soll und das System die angehaltene App reaktivieren sollte, wenn Netzwerkdaten für die App empfangen werden oder das Keep-Alive-Zeitgeberintervall des Servers abläuft. Verwenden Sie Steuerungskanaltrigger, wenn Ihre App eine Netzwerkverbindung aufrechterhalten 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 aufrechterhalten möchten. Ausführliche Informationen zu SocketActivityTrigger und dem Socketbroker finden Sie unter Netzwerkkommunikation im Hintergrund.

Die ControlChannelTrigger-Klasse wird für die Verwendung von Instanzen der folgenden Empfohlen, 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 zum Senden von TCP-Keep-Alive-Paketen zwischen einer Client-App und einem Server festlegen, um eine hergestellte TCP-Verbindung aufrechtzuerhalten, die nicht verwendet wird. Die HttpClient-Klasse und das XMLHttpRequest-JavaScript-Objekt verfügen nicht über eine Option zum Aktivieren von TCP keep-alive, und diese Option ist standardmäßig deaktiviert. Der TCP-Keep-Alive muss deaktiviert sein, damit die ControlChannelTrigger-Klasse zur Unterstützung von Netzwerkbenachrichtigungen im Hintergrund verwendet werden kann.

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

  • Server-Keep-Alive-Intervall: Dies bezieht sich auf ein Keep-Alive-Intervall in Minuten, das die App beim System registriert, um zu ermitteln, wie oft sie aktiviert werden soll, wenn die App angehalten wurde. Das System aktiviert die App basierend auf dem Wert, der für dieses Keep-Alive-Intervall festgelegt wurde. Dieser Wert wird durch die ServerKeepAliveIntervalInMinutes-Eigenschaft einer ControlChannelTrigger-Klasse dargestellt und als Argument auf den ControlChannelTrigger-Konstruktor festgelegt. Dieser Wert wird als Keep-Alive-Intervall des Servers betrachtet, da eine Netzwerk-App dies normalerweise basierend auf dem bekannten Verhalten des Servers festlegt, mit dem die App eine TCP-Verbindung hergestellt hat. Wenn beispielsweise bekannt ist, dass ein Webserver TCP-Verbindungen trennt und beendet, wenn die App 30 Minuten lang keine Daten sendet, kann die Netzwerk-App das Keep-Alive-Intervall für diesen Server 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 Netzwerkintermediären benötigt wird, um die TCP-Verbindung intakt zu halten. Diese Netzwerkintermediäre stellen Hardware und Geräte wie Netzwerkproxys und Netzwerkadressenübersetzungen dar. Eine Netzwerk-App kann diesen Wert nicht festlegen, da dieser Wert dynamisch von Systemkomponenten auf niedriger Ebene im TCP-Stapel bestimmt wird. Bei der internen Berechnung des Keep-Alive-Intervalls des Netzwerks wird das Keep-Alive-Intervall des Servers berücksichtigt. Eine Netzwerk-App kann dem System mitteilen, dass der Keep-Alive-Timer für das Netzwerk verringert werden soll, wenn etablierte 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

ControlChannelTrigger(String, UInt32)

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

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType)

Erstellt ein neues ControlChannelTrigger-Objekt mit einer Steuerungskanaltrigger-ID, einem Wert für das Keep-Alive-Intervall des Servers und dem für den Steuerungskanaltrigger angeforderten Ressourcentyp.

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

Eigenschaften

ControlChannelTriggerId

Ruft eine Zeichenfolge ab, mit der verschiedene Steuerungskanaltrigger auf dem lokalen Computer unterschieden werden können.

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

CurrentKeepAliveIntervalInMinutes

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

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

IsWakeFromLowPowerSupported

Ruft einen Wert ab, der angibt, ob das Aufwachen aus 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 verwenden soll, um die Aktivierungsklasse an die Hintergrundbrokerinfrastruktur zu binden.

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

PushNotificationTrigger

Ruft ein -Objekt ab, das den Pushbenachrichtigungstrigger darstellt, der dem ControlChannelTrigger-Objekt zugeordnet ist, das eine App verwenden soll, um die Aktivierungsklasse an die Hintergrundbrokerinfrastruktur zu binden.

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

ServerKeepAliveIntervalInMinutes

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

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

TransportObject

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

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

Methoden

Close()

Schließt das ControlChannelTrigger-Objekt .

Hinweis

Diese Methode wird auf Windows Phone nicht unterstützt.

DecreaseNetworkKeepAliveInterval()

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

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

FlushTransport()

Leert alle Netzwerkdaten, die von der Transportverbindung verwendet werden, die dem ControlChannelTrigger zugeordnet ist, in den Netzwerkstapel.

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

UsingTransport(Object)

Legt die Transportverbindung fest, die von einem Steuerkanaltrigger von Klassenelementen in windows.Networking.Sockets und zugehörigen Namespaces verwendet werden soll.

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

WaitForPushEnabled()

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

Hinweis

Die ControlChannelTrigger-Klasse wird auf Windows Phone nicht unterstützt.

Gilt für:

Weitere Informationen