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


RemoteSystemSession Класс

Определение

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

public ref class RemoteSystemSession sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RemoteSystemSession final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RemoteSystemSession : System.IDisposable
Public NotInheritable Class RemoteSystemSession
Implements IDisposable
Наследование
Object Platform::Object IInspectable RemoteSystemSession
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 Creators Update (появилось в 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v4.0)
Возможности приложения
remoteSystem

Примеры

Процесс присоединения к удаленному сеансу (включая получение ссылки на экземпляр RemoteSystemSession ) см. в приведенном ниже примере кода.

public async void JoinExistingSession() {

    // request to join. sessionInfo has already been selected by user.
    RemoteSystemSessionJoinResult joinResult = await sessionInfo.JoinAsync();

    // process the result
    if (joinResult.Status == RemoteSystemSessionJoinStatus.Success) {

        // if the join was successful, acquire a reference to the session
        currentSession = joinResult.Session;

        // optionally handle the disconnected event
        currentSession.Disconnected += async (sender, args) => {
            // update the UI, using args.Reason
        };

        // update the UI with the session.DisplayName and 
        // session.ControllerDisplayName strings. Save a reference to 
        // this RemoteSystemSession, to use when the user selects
        // this session from the UI

    } else {
        // join request failed. optionally update UI
    }
}

Кроме того, пример создания удаленного сеанса и обработки запросов на присоединение см. в следующем коде.

public async void StartNewSharedExperience() {

    var manager = new RemoteSystemSessionController("Bob’s Minecraft game");

    // register the following code to handle the JoinRequested event
    manager.JoinRequested += async (sender, args) => {
        // Get the deferral
        var deferral = args.GetDeferral();

        // display the participant (args.JoinRequest.Participant) on UI, giving the 
        // user an opportunity to respond
        // ...

        // If the user chooses "accept", accept this remote system as a participant
        args.JoinRequest.Accept();
    };

    // create and start the session
    RemoteSystemSessionCreationResult createResult = await manager.CreateSessionAsync();

    // handle the creation result
    if (createResult.Status == RemoteSystemSessionCreationStatus.Success) {
        // creation was successful
        RemoteSystemSession currentSession = createResult.Session;

        // optionally subscribe to the disconnection event
        currentSession.Disconnected += async (sender, args) => {
            // update the UI, using args.Reason
            // ...
        };

        // Use session ...

    } else if (createResult.Status == RemoteSystemSessionCreationStatus.SessionLimitsExceeded) {
        // creation failed. Optionally update UI to indicate that there are too many sessions in progress
    } else {
        // creation failed for an unknown reason. Optionally update UI
    }
}

Комментарии

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

Присоединенный сеанс представлен объектом RemoteSystemSession . Сеанс, который известен, но не был присоединен, представлен объектом RemoteSystemSessionInfo .

Свойства

ControllerDisplayName

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

DisplayName

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

Id

Возвращает уникальный идентификатор для этого удаленного сеанса.

Методы

Close()

Закрывает сеанс, отключая всех участников.

CreateParticipantWatcher()

Инициализирует RemoteSystemSessionParticipantWatcher для мониторинга участников этого удаленного сеанса.

CreateWatcher()

Инициализирует и возвращает объект RemoteSystemSessionWatcher для отслеживания наличия удаленных сеансов.

Dispose()

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

SendInvitationAsync(RemoteSystem)

Приглашает данное удаленное устройство присоединиться к этому удаленному сеансу.

События

Disconnected

Возникает при отключении этого устройства от этого удаленного сеанса.

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