RemoteSystemSession Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta e gestisce una sessione remota che può essere condivisa tra due o più dispositivi connessi. Per informazioni su questa funzionalità, vedere Osservazioni.
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
- Ereditarietà
- Attributi
- Implementazioni
Requisiti Windows
Famiglia di dispositivi |
Windows 10 Creators Update (è stato introdotto in 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v4.0)
|
Funzionalità dell'app |
remoteSystem
|
Esempio
Vedere l'esempio di codice seguente per il processo di aggiunta a una sessione remota (incluso il recupero di un riferimento a un'istanza di 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
}
}
In alternativa, vedere il codice seguente per un esempio di come creare una sessione remota e gestire le richieste di join.
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
}
}
Commenti
Sessioni di sistema remoto fa parte del set di funzionalità sistemi remoti più ampio. Consente a un'app di stabilire un oggetto sessione come terze parti intermedie che due o più dispositivi possono comunicare continuamente, abilitando diversi nuovi scenari tra dispositivi, ad esempio la messaggistica remota dell'app.
Una sessione aggiunta è rappresentata da un oggetto RemoteSystemSession . Una sessione nota su ma non è stata aggiunta è rappresentata da un oggetto RemoteSystemSessionInfo .
Proprietà
ControllerDisplayName |
Ottiene il nome del computer del dispositivo che è il controller di questa sessione remota. |
DisplayName |
Ottiene il nome pubblico per questa sessione remota, specificato dal controller della sessione. |
Id |
Ottiene l'identificatore univoco per questa sessione remota. |
Metodi
Close() |
Chiude la sessione, disconnettendo tutti i partecipanti. |
CreateParticipantWatcher() |
Inizializza un RemoteSystemSessionParticipantWatcher per monitorare i partecipanti di questa sessione remota. |
CreateWatcher() |
Inizializza e restituisce un oggetto RemoteSystemSessionWatcher per monitorare la presenza di sessioni remote. |
Dispose() |
Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite. |
SendInvitationAsync(RemoteSystem) |
Invita un determinato dispositivo remoto a partecipare a questa sessione remota. |
Eventi
Disconnected |
Generato quando questo dispositivo è stato disconnesso da questa sessione remota. |