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
- Наследование
- Атрибуты
- Реализации
Требования к 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 и объект 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() |
Позволяет приложению уведомлять систему о том, что установлено подключение, и система должна завершить внутреннюю конфигурацию триггера канала управления. |