Partager via


RemoteSystemSession Classe

Définition

Représente et gère une session à distance qui peut être partagée entre deux ou plusieurs appareils connectés. Pour plus d’informations sur cette fonctionnalité, consultez Remarques.

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
Héritage
Object Platform::Object IInspectable RemoteSystemSession
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 Creators Update (introduit dans 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v4.0)
Fonctionnalités de l’application
remoteSystem

Exemples

Consultez l’exemple de code ci-dessous pour connaître le processus de jonction d’une session distante (y compris l’obtention d’une référence à un instance 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
    }
}

Vous pouvez également consulter le code suivant pour obtenir un exemple de création d’une session distante et de gestion des demandes de jointure.

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

Remarques

Les sessions système à distance font partie de l’ensemble de fonctionnalités systèmes distants plus large. Il permet à une application d’établir un objet de session en tant que tiers intermédiaire via lequel deux appareils ou plus peuvent communiquer en permanence, ce qui permet un certain nombre de nouveaux scénarios inter-appareils, tels que la messagerie d’application distante.

Une session qui a été jointe est représentée par un objet RemoteSystemSession . Une session connue mais qui n’a pas été jointe est représentée par un objet RemoteSystemSessionInfo .

Propriétés

ControllerDisplayName

Obtient le nom de la machine de l’appareil qui est le contrôleur de cette session distante.

DisplayName

Obtient le nom public de cette session distante, donné par le contrôleur de la session.

Id

Obtient l’identificateur unique de cette session distante.

Méthodes

Close()

Ferme la session et déconnecte tous les participants.

CreateParticipantWatcher()

Initialise un RemoteSystemSessionParticipantWatcher pour surveiller les participants de cette session distante.

CreateWatcher()

Initialise et retourne un objet RemoteSystemSessionWatcher pour surveiller la présence de sessions à distance.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

SendInvitationAsync(RemoteSystem)

Invite un appareil distant donné à rejoindre cette session à distance.

Événements

Disconnected

Déclenché lorsque cet appareil a été déconnecté de cette session distante.

S’applique à