RemoteSystemSession Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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. |