RemoteSystemSession Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет и обрабатывает удаленный сеанс, который может совместно использоваться двумя или более подключенными устройствами. Сведения об этой функции см. в разделе Примечания.
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
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 Creators Update (появилось в 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v4.0)
|
Возможности приложения |
remoteSystem
|
Примеры
Процесс присоединения к удаленному сеансу (включая получение ссылки на экземпляр 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
}
}
Кроме того, пример создания удаленного сеанса и обработки запросов на присоединение см. в следующем коде.
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
}
}
Комментарии
Удаленные системные сеансы являются частью более широкого набора функций удаленных систем. Это позволяет приложению установить объект сеанса в качестве промежуточного стороннего поставщика, через которое два или более устройства могут постоянно обмениваться данными, обеспечивая ряд новых сценариев на нескольких устройствах, таких как удаленный обмен сообщениями в приложениях.
Присоединенный сеанс представлен объектом RemoteSystemSession . Сеанс, который известен, но не был присоединен, представлен объектом RemoteSystemSessionInfo .
Свойства
ControllerDisplayName |
Возвращает имя компьютера устройства, которое является контроллером этого удаленного сеанса. |
DisplayName |
Возвращает общедоступное имя для этого удаленного сеанса, заданное контроллером сеанса. |
Id |
Возвращает уникальный идентификатор для этого удаленного сеанса. |
Методы
Close() |
Закрывает сеанс, отключая всех участников. |
CreateParticipantWatcher() |
Инициализирует RemoteSystemSessionParticipantWatcher для мониторинга участников этого удаленного сеанса. |
CreateWatcher() |
Инициализирует и возвращает объект RemoteSystemSessionWatcher для отслеживания наличия удаленных сеансов. |
Dispose() |
Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов. |
SendInvitationAsync(RemoteSystem) |
Приглашает данное удаленное устройство присоединиться к этому удаленному сеансу. |
События
Disconnected |
Возникает при отключении этого устройства от этого удаленного сеанса. |