Compartilhar via


RemoteSystemSession Classe

Definição

Representa e manipula uma sessão remota que pode ser compartilhada entre dois ou mais dispositivos conectados. Consulte Comentários para obter informações sobre esse recurso.

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
Herança
Object Platform::Object IInspectable RemoteSystemSession
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 Creators Update (introduzida na 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v4.0)
Funcionalidades do aplicativo
remoteSystem

Exemplos

Consulte o exemplo de código abaixo para o processo de ingressar em uma sessão remota (incluindo a obtenção de uma referência a uma instância 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
    }
}

Como alternativa, consulte o código a seguir para obter um exemplo de como criar uma sessão remota e manipular solicitações de junção.

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
    }
}

Comentários

As Sessões do Sistema Remoto fazem parte do conjunto de recursos de Sistemas Remotos mais amplo. Ele permite que um aplicativo estabeleça um objeto de sessão como um terceiro intermediário por meio do qual dois ou mais dispositivos podem se comunicar continuamente, permitindo uma série de novos cenários entre dispositivos, como mensagens de aplicativo remoto.

Uma sessão que foi unida é representada por um objeto RemoteSystemSession . Uma sessão que é conhecida, mas não foi unida, é representada por um objeto RemoteSystemSessionInfo .

Propriedades

ControllerDisplayName

Obtém o nome do computador do dispositivo que é o controlador desta sessão remota.

DisplayName

Obtém o nome voltado para o público para esta sessão remota, fornecido pelo controlador da sessão.

Id

Obtém o identificador exclusivo para esta sessão remota.

Métodos

Close()

Fecha a sessão, desconectando todos os participantes.

CreateParticipantWatcher()

Inicializa um RemoteSystemSessionParticipantWatcher para monitorar os participantes desta sessão remota.

CreateWatcher()

Inicializa e retorna um objeto RemoteSystemSessionWatcher para monitorar a presença de sessões remotas.

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

SendInvitationAsync(RemoteSystem)

Convida um determinado dispositivo remoto a ingressar nesta sessão remota.

Eventos

Disconnected

Gerado quando este dispositivo foi desconectado desta sessão remota.

Aplica-se a