Поделиться через


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
Производный
Атрибуты

Комментарии

Все входные API в Windows App SDK являются производными от общего базового класса InputObject.

Модель потоков InputObject

Доступ к Объекту InputObject можно получить только из потока, в котором он был создан. Любой доступ к свойству или вызов функции в другом потоке будет возвращать RPC_E_WRONG_THREAD (или эквивалентный тип проецируемых ошибок). Единственным исключением является доступ к свойству InputObject DispatcherQueue . DispatcherQueue позволяет проверка, имеет ли текущий поток доступ, и, если нет, ставить работу в очередь в сопоставленный поток.

Все обратные вызовы событий вызываются в потоке DispatcherQueue, связанном с InputObject.

В следующем примере показано, как определить, принадлежит ли Объект InputObject текущему потоку.

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

Поведение при удалении

При удалении Объекта InputObject все связанные обработчики событий автоматически отменяются. Последующие вызовы отмены регистрации обработчика событий будут успешными, но не являются обязательными.

Все последующие вызовы функций или свойств, включая свойство DispatcherQueue, будут возвращать RO_E_CLOSED (или эквивалентную прогнозируемые ошибки).

Примечание

Память InputObject остается действительной до тех пор, пока не будут освобождены все ссылки, но все ресурсы будут освобождены при удалении.

Свойства

DispatcherQueue

Возвращает dispatcherQueue для Объекта InputObject.

Применяется к