RemoteSystemSession Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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. |