InputObject Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe di base per tutti gli oggetti di input.
[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
- Ereditarietà
- Derivato
- Attributi
Commenti
Tutte le API di input nel SDK per app di Windows derivano dalla classe di base InputObject comune.
Modello di threading InputObject
È possibile accedere a un oggetto InputObject solo dal thread in cui è stato creato. Qualsiasi chiamata di proprietà o funzione su un thread diverso restituirà RPC_E_WRONG_THREAD (o il tipo di errore proiettato equivalente). L'unica eccezione è l'accesso alla proprietà InputObject DispatcherQueue . DispatcherQueue consente di verificare se il thread corrente ha accesso e, in caso contrario, per accodare il lavoro al thread a cui è stato aggiunto.
Tutti i callback degli eventi vengono generati nel thread DispatcherQueue associato a InputObject.
Nell'esempio seguente viene illustrato come determinare se InputObject appartiene al thread corrente.
bool OnThread(Microsoft.UI.Input.InputObject inputObject)
{
return inputObject.DispatcherQueue.HasThreadAccess();
}
Comportamento quando eliminato
Quando un oggetto InputObject viene eliminato, tutti i gestori eventi associati vengono annullati automaticamente. Le chiamate successive per annullare la registrazione di un gestore eventi avranno esito positivo, ma non sono necessarie.
Tutte le chiamate di funzione o proprietà successive, inclusa la proprietà DispatcherQueue, restituiranno RO_E_CLOSED (o l'errore proiettato equivalente).
Nota
La memoria InputObject rimane valida fino a quando non vengono rilasciati tutti i riferimenti, ma tutte le risorse vengono rilasciate al momento dell'eliminazione.
Proprietà
DispatcherQueue |
Ottiene dispatcherQueue per InputObject. |