Condividi tramite


ControlChannelTrigger Classe

Definizione

Consente di ricevere notifiche in tempo reale in background per gli oggetti che stabiliscono una connessione TCP e desiderano ricevere una notifica del traffico in ingresso.

Chiamare **BackgroundExecutionManager.RequestAccessAsync** prima di usare ControlChannelTrigger.

Nota

Questa classe non è supportata in 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
Ereditarietà
Object Platform::Object IInspectable ControlChannelTrigger
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows Desktop Extension SDK (è stato introdotto in 10.0.10240.0)
Windows Mobile Extension SDK (è stato introdotto in 10.0.10240.0)
API contract
Windows.Networking.Sockets.ControlChannelTriggerContract (è stato introdotto in v1.0)

Commenti

La classe ControlChannelTrigger e le interfacce correlate vengono usate per consentire all'app di usare la rete quando l'app non è in primo piano. Un'app di Windows universale viene in genere sospesa quando non è più in primo piano e spostata in background. Esistono alcune eccezioni per sospendere un'app ,ad esempio stampando attivamente, accedendo a un flusso audio e trasferendo file in background. La classe ControlChannelTrigger consente a un'app di rete che ha stabilito una connessione TCP di notificare al sistema che deve essere mantenuta operativa una connessione di rete stabilita e il sistema deve riattivare l'app sospesa quando i dati di rete vengono ricevuti per l'app o l'intervallo timer keep-alive del server scade. Usa i trigger del canale di controllo quando l'app deve mantenere una connessione di rete anche se è in background.

Anche se la classe ControlChannelTrigger può essere usata con DatagramSocket, StreamSocket o StreamSocketListener, Windows 10 fornisce un meccanismo migliorato per le app che usano tali classi e vogliono mantenere le connessioni in background. Per informazioni dettagliate su SocketActivityTrigger e sul gestore socket, vedere Comunicazioni di rete in background.

La classe ControlChannelTrigger è consigliata per essere usata dalle istanze di seguenti che stabiliscono una connessione TCP:

Esistono diversi tipi di intervalli keep-alive che possono essere correlati alle app di rete. Al livello più basso, un'app può impostare un'opzione keep-alive TCP per inviare pacchetti keep-alive TCP tra un'app client e un server per mantenere una connessione TCP stabilita che non viene usata. La classe HttpClient e l'oggetto JavaScript XMLHttpRequest non dispongono di un'opzione per abilitare TCP keep-alive e questa opzione è disabilitata per impostazione predefinita. Il keep-alive TCP deve essere disabilitato per usare la classe ControlChannelTrigger per supportare le notifiche di rete in background.

Nel contesto della classe ControlChannelTrigger esistono due altri intervalli keep-alive che hanno un impatto.

  • Intervallo keep-alive del server: si riferisce a un intervallo keep-alive in minuti in cui l'app esegue la registrazione con il sistema per la frequenza di riattivarsi quando l'app è stata sospesa. Il sistema riattiva l'app in base al valore impostato per questo intervallo keep-alive. Questo valore è rappresentato dalla proprietà ServerKeepAliveIntervalInMinutes in una classe ControlChannelTrigger e viene impostato come argomento sul costruttore ControlChannelTrigger. Questo valore viene considerato un intervallo keep-alive del server perché un'app di rete potrebbe normalmente impostare questo valore in base al comportamento noto del server a cui l'app ha stabilito una connessione TCP. Ad esempio, se è noto che un server Web disconnette e rilascia le connessioni TCP se non sono presenti dati inviati dall'app per 30 minuti, l'app di rete potrebbe impostare l'intervallo keep-alive del server su 25 minuti.
  • Intervallo keep-alive di rete: si riferisce a un timer keep-alive interno gestito da componenti di rete di basso livello nello stack TCP in base alle condizioni di rete correnti. Questo valore rappresenta il valore necessario dagli intermediari di rete per mantenere intatta la connessione TCP. Questi intermediari di rete rappresentano hardware e dispositivi, ad esempio proxy di rete e convertitori di indirizzi di rete. Un'app di rete non può impostare questo valore, poiché questo valore viene determinato dinamicamente da componenti di sistema di basso livello nello stack TCP. Il calcolo interno dell'intervallo keep-alive di rete tiene conto dell'intervallo keep-alive del server. Un'app di rete può indicare al sistema che il timer keep-alive di rete deve essere ridotto se le connessioni TCP stabilite vengono regolarmente eliminate chiamando il metodo DecreaseNetworkKeepAliveInterval in una classe ControlChannelTrigger.

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1607 14393 IsWakeFromLowPowerSupported

Costruttori

ControlChannelTrigger(String, UInt32)

Crea un nuovo oggetto ControlChannelTrigger con un ID trigger del canale di controllo e un valore per l'intervallo keep-alive del server.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType)

Crea un nuovo oggetto ControlChannelTrigger con un ID trigger del canale di controllo, un valore per l'intervallo keep-alive del server e il tipo di risorsa richiesto per il trigger del canale di controllo.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

Proprietà

ControlChannelTriggerId

Ottiene una stringa che può essere utilizzata per distinguere vari trigger del canale di controllo nel computer locale.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

CurrentKeepAliveIntervalInMinutes

Ottiene l'intervallo keep-alive della rete, in minuti, gestito da componenti di rete di basso livello nello stack TCP in base alle condizioni di rete correnti.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

IsWakeFromLowPowerSupported

Ottiene un valore che indica se è supportata la riattivazione da stati a basso consumo.

KeepAliveTrigger

Ottiene un oggetto che rappresenta il trigger keep-alive associato all'oggetto ControlChannelTrigger che un'app deve usare per associare la classe di attivazione all'infrastruttura broker in background.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

PushNotificationTrigger

Ottiene un oggetto che rappresenta il trigger di notifica push associato all'oggetto ControlChannelTrigger che un'app deve usare per associare la classe di attivazione all'infrastruttura broker in background.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

ServerKeepAliveIntervalInMinutes

Ottenere o impostare l'intervallo keep-alive del server, in minuti, registrato con il sistema per indicare quando l'app e le connessioni di rete associate usate devono riattivarsi.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

TransportObject

Ottiene l'oggetto trasporto utilizzato dal sistema per la connessione di trasporto associata all'oggetto ControlChannelTrigger .

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

Metodi

Close()

Chiude l'oggetto ControlChannelTrigger .

Nota

Questo metodo non è supportato in Windows Phone.

DecreaseNetworkKeepAliveInterval()

Fornisce un modo per un'app per indicare che l'intervallo keep-alive della rete gestito dal sistema con intermediari di rete per riattivarsi era troppo lungo e dovrebbe essere ridotto. Questo metodo si applica agli elementi della classe negli spazi dei nomi Windows.Networking.Sockets e correlati.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

FlushTransport()

Scarica tutti i dati di rete usati dalla connessione di trasporto associata a ControlChannelTrigger allo stack di rete.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

UsingTransport(Object)

Imposta la connessione di trasporto da utilizzare da un trigger del canale di controllo dagli elementi della classe negli spazi dei nomi Windows.Networking.Sockets e correlati.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

WaitForPushEnabled()

Consente a un'app di notificare al sistema che è stata stabilita una connessione e che il sistema deve completare la configurazione interna del trigger del canale di controllo.

Nota

La classe ControlChannelTrigger non è supportata in Windows Phone.

Si applica a

Vedi anche