RemoteSystemSession 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示及處理可在兩部或更多連線裝置之間共用的遠端會話。 如需此功能的相關資訊,請參閱。
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() |
執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。 |
SendInvitationAsync(RemoteSystem) |
邀請指定的遠端裝置加入此遠端會話。 |
事件
Disconnected |
當此裝置已從這個遠端會話中斷連線時引發。 |