Язык

ControlChannelTrigger Класс

Определение

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

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

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-подключение:

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

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

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

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

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

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

Имя. Описание
ControlChannelTrigger(String, UInt32, ControlChannelTriggerResourceType)

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

ControlChannelTrigger(String, UInt32)

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

Свойства

Имя. Описание
ControlChannelTriggerId

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

CurrentKeepAliveIntervalInMinutes

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

IsWakeFromLowPowerSupported

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

KeepAliveTrigger

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

PushNotificationTrigger

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

ServerKeepAliveIntervalInMinutes

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

TransportObject

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

Методы

Имя. Описание
Close()

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

DecreaseNetworkKeepAliveInterval()

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

Dispose()

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

FlushTransport()

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

UsingTransport(Object)

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

WaitForPushEnabled()

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

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

См. также