初始化 Gaming Runtime Services
XSAPI 依赖于 Gaming Runtime Services (GRTS)。在调用任何 XSAPI 之前,请先初始化 GRTS,如下所示。创建 XTaskQueue(可选)
大多数 XSAPI 都是异步 API,需要使用任务队列。它是一个用于将工作排队和用于完成任务回调的 API。要了解有关XTaskQueue 和不同分派模式的更多信息,请参阅 异步任务队列设计。
例如,以下代码使用系统线程池创建任务队列。
nullptr。当使用 nullptr 时,任务系统默认使用 ThreadPool。可以通过调用 XTaskQueueSetCurrentProcessTaskQueue 来重写它。
设置 HttpClient 跟踪(可选)
要查看其他运行时调试信息,请确保设置HttpClient 的跟踪功能。
以下代码设置 HttpClient 跟踪级别并启用调试器信息的输出。
初始化 XSAPI
在调用任何 XSAPI 之前,初始化 XSAPI。将用户登录到 XBOX 网络
大多数 XSAPI 都要求用户先登录到 XBOX 网络。要将用户登录到 XBOX 网络,请参阅 XUserAddAsync API 的代码示例。
创建 XboxLiveContext 对象
XboxLiveContext 对象表示与特定用户关联的服务上下文。
大多数 XSAPI 要求你传入表示调用用户上下文的 XboxLiveContextHandle。要创建 XBOX Live(网络)上下文,请使用 XblContextCreateHandle API,并传入从上一步获取的
XUserHandle 对象。
向 XBOX 服务进行服务调用
现在你已有与已登录用户的XUserHandle 对象关联的 XboxLiveContext 对象,就可以向 XBOX 服务进行服务调用了。
例如,要检索用户的好友列表,你可以执行以下操作:
清理 XSAPI
在任何情况下都无需调用XblCleanupAsync()。
在应用终止的情况下,目前没有可调用的同步 XblCleanup() API。就其生命周期性质而言,应用终止需要同步且立即地处理。因此,会依赖常规的操作系统级清理—即应用进程终止时发生的清理—这对于此情况已经足够。
在应用挂起的情况下,XSAPI 会处理运行所需系统资源的释放和还原,以便在恢复后保持功能。
如果你的游戏选择主动释放分配给 XSAPI 的资源,仍可以使用 XblCleanupAsync()。