RemoteSystemSession Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa e manipula uma sessão remota que pode ser compartilhada entre dois ou mais dispositivos conectados. Consulte Comentários para obter informações sobre esse recurso.
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
- Herança
- Atributos
- Implementações
Requisitos do Windows
Família de dispositivos |
Windows 10 Creators Update (introduzida na 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v4.0)
|
Funcionalidades do aplicativo |
remoteSystem
|
Exemplos
Consulte o exemplo de código abaixo para o processo de ingressar em uma sessão remota (incluindo a obtenção de uma referência a uma instância 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
}
}
Como alternativa, consulte o código a seguir para obter um exemplo de como criar uma sessão remota e manipular solicitações de junção.
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
}
}
Comentários
As Sessões do Sistema Remoto fazem parte do conjunto de recursos de Sistemas Remotos mais amplo. Ele permite que um aplicativo estabeleça um objeto de sessão como um terceiro intermediário por meio do qual dois ou mais dispositivos podem se comunicar continuamente, permitindo uma série de novos cenários entre dispositivos, como mensagens de aplicativo remoto.
Uma sessão que foi unida é representada por um objeto RemoteSystemSession . Uma sessão que é conhecida, mas não foi unida, é representada por um objeto RemoteSystemSessionInfo .
Propriedades
ControllerDisplayName |
Obtém o nome do computador do dispositivo que é o controlador desta sessão remota. |
DisplayName |
Obtém o nome voltado para o público para esta sessão remota, fornecido pelo controlador da sessão. |
Id |
Obtém o identificador exclusivo para esta sessão remota. |
Métodos
Close() |
Fecha a sessão, desconectando todos os participantes. |
CreateParticipantWatcher() |
Inicializa um RemoteSystemSessionParticipantWatcher para monitorar os participantes desta sessão remota. |
CreateWatcher() |
Inicializa e retorna um objeto RemoteSystemSessionWatcher para monitorar a presença de sessões remotas. |
Dispose() |
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados. |
SendInvitationAsync(RemoteSystem) |
Convida um determinado dispositivo remoto a ingressar nesta sessão remota. |
Eventos
Disconnected |
Gerado quando este dispositivo foi desconectado desta sessão remota. |