Considerazioni sul threading per l'API StylusInput
L'oggetto RealTimeStylus è progettato per fornire l'accesso in tempo reale al flusso di dati dalla penna del tablet. I plug-in, gli oggetti che implementano l'interfaccia IStylusSyncPlugin o IStylusAsyncPlugin possono essere aggiunti a un oggetto RealTimeStylus. I plug-in sincroni vengono generalmente chiamati direttamente dall'oggetto RealTimeStylus su un thread con priorità elevata, mentre i plug-in asincroni vengono generalmente chiamati sul thread dell'interfaccia utente dell'applicazione. Creare o usare plug-in sincroni per le attività che richiedono l'accesso in tempo reale al flusso di dati e sono di tipo computazionale non richiesta, ad esempio il filtro dei pacchetti. Creare o usare plug-in asincroni per le attività che non richiedono l'accesso in tempo reale al flusso di dati, ad esempio la raccolta input penna.
Poiché i dati plug-in per la raccolta plug-in asincrona dell'oggetto RealTimeStylus vengono accodati, i plug-in asincroni possono ricevere dati prima di ricevere una chiamata al relativo metodo RealTimeStylusDisabled, ma dopo che l'oggetto RealTimeStylus è disabilitato. Si noti che alcuni dei metodi e delle proprietà dell'oggetto RealTimeStylus generano un'eccezione se l'oggetto RealTimeStylus è disabilitato.
I metodi di interfaccia IStylusSyncPlugin seguenti possono chiamare su un thread diverso dal thread della penna tablet.
- I metodi RealTimeStylusEnabled e RealTimeStylusDisabled vengono chiamati nel thread che aggiorna la proprietà Enabled dell'oggetto RealTimeStylus o che aggiunge o rimuove il plug-in mentre l'oggetto RealTimeStylus è abilitato.
- Il metodo CustomStylusDataAdded viene chiamato nel thread che chiama il metodo AddCustomStylus dell'oggetto AddCustomStylusDataToQueue.
- Il metodo Error viene chiamato sul thread in cui viene eseguito il plug-in sincrono quando genera un'eccezione.
Per interagire con l'applicazione da un plug-in sincrono, usare il metodo AddCustomStylusDataToQueue dell'oggetto RealTimeStylus e gestire i dati dello stilo personalizzato in uno dei plug-in asincroni. Se si effettua una chiamata sincrona a un altro thread da un plug-in sincrono, è possibile bloccare l'oggetto RealTimeStylus e quindi bloccare l'insieme input penna.
Alcune attività possono essere richieste in modo computazionale ma richiedono ancora l'accesso in tempo reale al flusso di dati della penna tablet, ad esempio per il riconoscimento dei movimenti multistroke. Le API StylusInput forniscono un modello RealTimeStylus a catena che consente di usare due oggetti RealTimeStylus , ognuno dei quali chiama i plug-in sincroni da thread diversi. Per altre informazioni sul modello RealTimeStylus a cascata, vedere Il modello RealTimeStylus cascaded.
Nota
Non è possibile collegare l'oggetto RealTimeStylus a una finestra o a un controllo in un processo diverso.
Per altre informazioni sulle considerazioni sul threading per il TABLET PC in generale, vedere Considerazioni sul threading tablet PC