Freigeben über


RemoteSystemSession Klasse

Definition

Stellt eine Remotesitzung dar und verarbeitet diese, die zwischen zwei oder mehr verbundenen Geräten freigegeben werden kann. Weitere Informationen zu diesem Feature finden Sie unter Hinweise.

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
Vererbung
Object Platform::Object IInspectable RemoteSystemSession
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 Creators Update (eingeführt in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v4.0)
App-Funktionen
remoteSystem

Beispiele

Sehen Sie sich das folgende Codebeispiel für den Prozess des Beitretens zu einer Remotesitzung an (einschließlich des Abrufens eines Verweises auf eine RemoteSystemSession-instance).

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

Alternativ finden Sie im folgenden Code ein Beispiel für das Erstellen einer Remotesitzung und das Behandeln von Joinanforderungen.

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

Hinweise

Remotesystemsitzungen sind Teil des umfassenderen Featuresatzes für Remotesysteme. Es ermöglicht einer App, ein Sitzungsobjekt als zwischengeschalteten Drittanbieter einzurichten, über den zwei oder mehr Geräte kontinuierlich kommunizieren können, wodurch eine Reihe neuer geräteübergreifender Szenarien wie Remote-App-Messaging ermöglicht wird.

Eine verknüpfte Sitzung wird durch ein RemoteSystemSession-Objekt dargestellt. Eine Sitzung, die bekannt ist, aber nicht eingebunden wurde, wird durch ein RemoteSystemSessionInfo-Objekt dargestellt.

Eigenschaften

ControllerDisplayName

Ruft den Computernamen des Geräts ab, das der Controller dieser Remotesitzung ist.

DisplayName

Ruft den öffentlichen Namen für diese Remotesitzung ab, der vom Controller der Sitzung angegeben wird.

Id

Ruft den eindeutigen Bezeichner für diese Remotesitzung ab.

Methoden

Close()

Schließt die Sitzung und trennt alle Teilnehmer.

CreateParticipantWatcher()

Initialisiert einen RemoteSystemSessionParticipantWatcher , um die Teilnehmer dieser Remotesitzung zu überwachen.

CreateWatcher()

Initialisiert und gibt ein RemoteSystemSessionWatcher-Objekt zurück, um das Vorhandensein von Remotesitzungen zu überwachen.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

SendInvitationAsync(RemoteSystem)

Lädt ein bestimmtes Remotegerät ein, an dieser Remotesitzung teilzunehmen.

Ereignisse

Disconnected

Wird ausgelöst, wenn dieses Gerät von dieser Remotesitzung getrennt wurde.

Gilt für: