InputObject Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Basisklasse für alle Eingabeobjekte.
[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
- Vererbung
- Abgeleitet
- Attribute
Hinweise
Alle Eingabe-APIs im Windows App SDK von der allgemeinen InputObject-Basisklasse abgeleitet.
InputObject-Threadingmodell
Auf ein InputObject kann nur über den Thread zugegriffen werden, in dem es erstellt wurde. Jeder Eigenschaftszugriff oder Funktionsaufruf für einen anderen Thread gibt RPC_E_WRONG_THREAD (oder den entsprechenden projizierten Fehlertyp) zurück. Die einzige Ausnahme ist der Zugriff auf die Eigenschaft InputObject DispatcherQueue . Mit DispatcherQueue können Sie überprüfen, ob der aktuelle Thread Zugriff hat und, falls nicht, die Arbeit an den affinen Thread in die Warteschlange zu stellen.
Alle Ereignisrückrufe werden im Thread DispatcherQueue ausgelöst, der dem InputObject zugeordnet ist.
Im folgenden Beispiel wird gezeigt, wie Ermittelt wird, ob das InputObject zum aktuellen Thread gehört.
bool OnThread(Microsoft.UI.Input.InputObject inputObject)
{
return inputObject.DispatcherQueue.HasThreadAccess();
}
Verhalten bei Entsorgung
Wenn ein InputObject verworfen wird, werden alle zugeordneten Ereignishandler automatisch nicht registriert. Nachfolgende Aufrufe zum Aufheben der Registrierung eines Ereignishandlers sind erfolgreich, aber nicht erforderlich.
Alle nachfolgenden Funktions- oder Eigenschaftsaufrufe, einschließlich der DispatcherQueue-Eigenschaft, geben RO_E_CLOSED (oder den entsprechenden projizierten Fehler) zurück.
Hinweis
Der InputObject-Arbeitsspeicher bleibt gültig, bis alle Verweise freigegeben wurden, aber alle Ressourcen werden freigegeben, wenn sie verworfen werden.
Eigenschaften
DispatcherQueue |
Ruft den DispatcherQueue für das InputObject ab. |