Поделиться через


ControlChannelTrigger Класс

Определение

Позволяет получать уведомления в режиме реального времени в фоновом режиме для объектов, которые устанавливают TCP-подключение и хотят получать уведомления о входящем трафике.

Вызовите **BackgroundExecutionManager.RequestAccessAsync** перед использованием ControlChannelTrigger.

Примечание

Этот класс не поддерживается в 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
Наследование
Object Platform::Object IInspectable ControlChannelTrigger
Атрибуты
Реализации

Требования к 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 и брокере сокетов см. в разделе Сетевые подключения в фоновом режиме.

Класс ControlChannelTrigger рекомендуется использовать экземплярами следующих компонентов, устанавливающих TCP-подключение:

  • Класс HttpClient в пространстве имен Windows.Web.Http .
  • Классы HttpClient и HttpClientHandler в пространстве имен System.Net.Http в платформа .NET Framework. Также поддерживаются пользовательские классы, производные от этих классов.
  • Интерфейс IXMLHTTPRequest2 . Интерфейс IXMLHTTPRequest2 является расширением объекта XMLHttpRequest, определенного в нескольких рабочих черновиках, опубликованных консорциумом W3C.

Существует несколько типов интервалов активности, которые могут относиться к сетевым приложениям. На самом низком уровне приложение может задать параметр проверки активности TCP для отправки пакетов tcp-активности между клиентским приложением и сервером для поддержания установленного TCP-подключения, которое не используется. Класс HttpClient и объект XMLHttpRequest JavaScript не имеют возможности включить протокол TCP keep-alive, и этот параметр отключен по умолчанию. Чтобы использовать класс ControlChannelTrigger для поддержки фоновых сетевых уведомлений, необходимо отключить протокол TCP Keep-Alive.

В контексте класса ControlChannelTrigger существуют два других интервала поддержания активности, которые оказывают влияние.

  • Интервал поддержания активности сервера — это интервал активности в минутах, который приложение регистрирует в системе, чтобы узнать, как часто должно быть пробуждение после приостановки приложения. Система разбудит приложение на основе значения, заданного для этого интервала активности. Это значение представлено свойством ServerKeepAliveIntervalInMinutes класса ControlChannelTrigger и задается в качестве аргумента конструктора ControlChannelTrigger. Это значение считается интервалом активности сервера, так как сетевое приложение обычно может задать его на основе известного поведения сервера, к которому приложение установило TCP-подключение. Например, если известно, что веб-сервер будет отключаться и удалять TCP-подключения, если приложение не отправляет данные в течение 30 минут, сетевое приложение может установить для этого сервера интервал активности в 25 минут.
  • Интервал активности сети — это внутренний таймер активности, поддерживаемый низкоуровневые сетевые компоненты в стеке TCP на основе текущих условий сети. Это значение представляет значение, необходимое сетевым посредникам для сохранения TCP-подключения без изменений. Эти сетевые посредники представляют оборудование и устройства, такие как сетевые прокси-серверы и переводчики сетевых адресов. Сетевое приложение не может задать это значение, так как это значение динамически определяется низкоуровневые системные компоненты в стеке TCP. При внутреннем вычислении интервала активности сети учитывается интервал активности сервера. Сетевое приложение может указать системе, что таймер активности сети должен быть уменьшен, если установленные TCP-подключения регулярно удаляются, путем вызова метода DecreaseNetworkKeepAliveInterval в классе ControlChannelTrigger.

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1607 14393 IsWakeFromLowPowerSupported

Конструкторы

ControlChannelTrigger(String, UInt32)

Создает объект ControlChannelTrigger с идентификатором триггера канала управления и значением для интервала активности сервера.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType)

Создает объект ControlChannelTrigger с идентификатором триггера канала управления, значением интервала активности сервера и типом ресурса, запрошенным для триггера канала управления.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

Свойства

ControlChannelTriggerId

Возвращает строку, которая может использоваться для различения различных триггеров канала управления на локальном компьютере.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

CurrentKeepAliveIntervalInMinutes

Возвращает интервал активности сети в минутах, поддерживаемый низкоуровневые сетевые компоненты в стеке TCP на основе текущих условий сети.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

IsWakeFromLowPowerSupported

Возвращает значение, указывающее, поддерживается ли пробуждение из состояний с низким энергопотреблением.

KeepAliveTrigger

Возвращает объект , представляющий триггер поддержания активности, связанный с объектом ControlChannelTrigger , который приложение должно использовать для привязки класса активации к инфраструктуре фонового брокера.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

PushNotificationTrigger

Возвращает объект , представляющий триггер push-уведомлений, связанный с объектом ControlChannelTrigger , который приложение должно использовать для привязки класса активации к инфраструктуре фонового брокера.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

ServerKeepAliveIntervalInMinutes

Получите или задайте интервал активности сервера (в минутах), зарегистрированный в системе, чтобы указать, когда приложение и связанные сетевые подключения должны выходить из спящего режима.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

TransportObject

Возвращает транспортный объект, который система использует для транспортного соединения, связанного с объектом ControlChannelTrigger .

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

Методы

Close()

Закрывает объект ControlChannelTrigger .

Примечание

Этот метод не поддерживается в Windows Phone.

DecreaseNetworkKeepAliveInterval()

Предоставляет приложению способ указать, что интервал активности сети, поддерживаемый системой с сетевыми посредниками для пробуждения, был слишком длинным и должен быть уменьшен. Этот метод применяется к элементам класса в Windows.Networking.Sockets и связанных пространствах имен.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

FlushTransport()

Записывает все сетевые данные, используемые транспортным подключением, связанным с ControlChannelTrigger , в сетевой стек.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

UsingTransport(Object)

Задает транспортное подключение для использования триггером канала управления элементами класса в Windows.Networking.Sockets и связанных пространствах имен.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

WaitForPushEnabled()

Позволяет приложению уведомлять систему о том, что подключение установлено, и система должна завершить внутреннюю настройку триггера канала управления.

Примечание

Класс ControlChannelTrigger не поддерживается в Windows Phone.

Применяется к

См. также раздел