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
- Наследование
- Производный
- Атрибуты
Комментарии
Все входные 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. |