InputObject 类

定义

所有输入对象的基类。

[WebHostHidden]
public ref class InputObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[WebHostHidden]
class InputObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class InputObject
Public Class InputObject
继承
Object Platform::Object IInspectable InputObject
派生
属性

注解

Windows 应用 SDK中的所有输入 API 都派生自公共 InputObject 基类。

InputObject 线程模型

InputObject 只能从创建它的线程进行访问。 其他线程上的任何属性访问或函数调用都将返回RPC_E_WRONG_THREAD (或等效的投影错误类型) 。 唯一的例外是访问 InputObject DispatcherQueue 属性时。 DispatcherQueue 允许你检查当前线程是否具有访问权限,如果当前线程具有访问权限,则允许将工作排入到被分隔的线程。

所有事件回调都是在与 InputObject 关联的 DispatcherQueue 线程上引发的。

以下示例演示如何确定 InputObject 是否属于当前线程。

bool OnThread(Microsoft.UI.Input.InputObject inputObject)
{
    return inputObject.DispatcherQueue.HasThreadAccess();
}

释放时的行为

释放 InputObject 后,将自动注销所有关联的事件处理程序。 取消注册事件处理程序的后续调用将成功,但这不是必需的。

所有后续函数或属性调用(包括 DispatcherQueue 属性)都将返回RO_E_CLOSED (或等效的投影错误) 。

注意

在释放所有引用之前,InputObject 内存保持有效,但在释放时释放所有资源。

属性

DispatcherQueue

获取 InputObject 的 DispatcherQueue

适用于