AsyncBase (classe)
Implémente la machine d'état asynchrone du Windows Runtime.
Syntaxe
template <
typename TComplete,
typename TProgress = Details::Nil,
AsyncResultType resultType = SingleResult
>
class AsyncBase : public AsyncBase<TComplete, Details::Nil, resultType>;
template <typename TComplete, AsyncResultType resultType>
class AsyncBase<TComplete, Details::Nil, resultType> :
public Microsoft::WRL::Implements<IAsyncInfo>;
Paramètres
TComplete
Gestionnaire d’événements appelé lorsqu’une opération asynchrone se termine.
TProgress
Un gestionnaire d’événements appelé lorsqu’une opération asynchrone en cours d’exécution signale la progression actuelle de l’opération.
resultType
Une des valeurs d’énumération AsyncResultType . Par défaut, SingleResult
.
Membres
Constructeurs publics
Nom | Description |
---|---|
AsyncBase ::AsyncBase | Initialise une instance de la classe AsyncBase . |
Méthodes publiques
Nom | Description |
---|---|
AsyncBase ::Cancel | Annule une opération asynchrone. |
AsyncBase ::Close | Ferme l’opération asynchrone. |
AsyncBase ::FireCompletion | Appelle le gestionnaire d’événements d’achèvement ou réinitialise le délégué de progression interne. |
AsyncBase ::FireProgress | Appelle le gestionnaire d’événements de progression actuel. |
AsyncBase ::get_ErrorCode | Récupère le code d’erreur de l’opération asynchrone actuelle. |
AsyncBase ::get_Id | Récupère le handle de l’opération asynchrone. |
AsyncBase ::get_Status | Récupère une valeur qui indique l’état de l’opération asynchrone. |
AsyncBase ::GetOnComplete | Copie l’adresse du gestionnaire d’événements d’achèvement actuel dans la variable spécifiée. |
AsyncBase ::GetOnProgress | Copie l’adresse du gestionnaire d’événements de progression actuel dans la variable spécifiée. |
AsyncBase ::p ut_Id | Définit le handle de l’opération asynchrone. |
AsyncBase ::P utOnComplete | Définit l’adresse du gestionnaire d’événements d’achèvement sur la valeur spécifiée. |
AsyncBase ::P utOnProgress | Définit l’adresse du gestionnaire d’événements de progression sur la valeur spécifiée. |
Méthodes protégées
Nom | Description |
---|---|
AsyncBase ::CheckValidStateForDelegateCall | Teste si les propriétés de délégué peuvent être modifiées dans l’état asynchrone actuel. |
AsyncBase ::CheckValidStateForResultsCall | Teste si les résultats d’une opération asynchrone peuvent être collectés dans l’état asynchrone actuel. |
AsyncBase ::ContinueAsyncOperation | Détermine si l’opération asynchrone doit continuer le traitement ou doit s’arrêter. |
AsyncBase ::CurrentStatus | Récupère l’état de l’opération asynchrone actuelle. |
AsyncBase ::ErrorCode | Récupère le code d’erreur de l’opération asynchrone actuelle. |
AsyncBase ::OnCancel | En cas de substitution dans une classe dérivée, annule une opération asynchrone. |
AsyncBase ::OnClose | En cas de substitution dans une classe dérivée, ferme une opération asynchrone. |
AsyncBase ::OnStart | En cas de substitution dans une classe dérivée, démarre une opération asynchrone. |
AsyncBase ::Start | Démarre l’opération asynchrone. |
AsyncBase ::TryTransitionToCompleted | Indique si l’opération asynchrone actuelle est terminée. |
AsyncBase ::TryTransitionToError | Indique si le code d’erreur spécifié peut modifier l’état d’erreur interne. |
Hiérarchie d'héritage
AsyncBase
AsyncBase
Spécifications
En-tête : async.h
Espace de noms : Microsoft::WRL
AsyncBase ::AsyncBase
Initialise une instance de la classe AsyncBase
.
AsyncBase();
AsyncBase ::Cancel
Annule une opération asynchrone.
STDMETHOD(
Cancel
)(void);
Valeur de retour
Par défaut, retourne toujours S_OK.
Notes
Cancel()
est une implémentation par défaut de IAsyncInfo::Cancel
, et ne fonctionne pas réellement. Pour annuler une opération asynchrone, remplacez la OnCancel()
méthode virtuelle pure.
AsyncBase ::CheckValidStateForDelegateCall
Teste si les propriétés de délégué peuvent être modifiées dans l’état asynchrone actuel.
inline HRESULT CheckValidStateForDelegateCall();
Valeur de retour
S_OK si les propriétés de délégué peuvent être modifiées ; sinon, E_ILLEGAL_METHOD_CALL.
AsyncBase ::CheckValidStateForResultsCall
Teste si les résultats d’une opération asynchrone peuvent être collectés dans l’état asynchrone actuel.
inline HRESULT CheckValidStateForResultsCall();
Valeur de retour
S_OK si les résultats peuvent être collectés ; sinon, E_ILLEGAL_METHOD_CALLE_ILLEGAL_METHOD_CALL.
AsyncBase ::Close
Ferme l’opération asynchrone.
STDMETHOD(
Close
)(void) override;
Valeur de retour
S_OK si l’opération se ferme ou est déjà fermée ; sinon, E_ILLEGAL_STATE_CHANGE.
Notes
Close()
est une implémentation par défaut de IAsyncInfo::Close
, et ne fonctionne pas réellement. Pour fermer réellement une opération asynchrone, remplacez la OnClose()
méthode virtuelle pure.
AsyncBase ::ContinueAsyncOperation
Détermine si l’opération asynchrone doit continuer le traitement ou doit s’arrêter.
inline bool ContinueAsyncOperation();
Valeur de retour
true
si l’état actuel de l’opération asynchrone est démarré, ce qui signifie que l’opération doit continuer. Sinon, false
ce qui signifie que l’opération doit s’arrêter.
AsyncBase ::CurrentStatus
Récupère l’état de l’opération asynchrone actuelle.
inline void CurrentStatus(
Details::AsyncStatusInternal *status
);
Paramètres
statut
Emplacement où cette opération stocke l’état actuel.
Notes
Cette opération est thread-safe.
AsyncBase ::ErrorCode
Récupère le code d’erreur de l’opération asynchrone actuelle.
inline void ErrorCode(
HRESULT *error
);
Paramètres
error
Emplacement où cette opération stocke le code d’erreur actuel.
Notes
Cette opération est thread-safe.
AsyncBase ::FireCompletion
Appelle le gestionnaire d’événements d’achèvement ou réinitialise le délégué de progression interne.
void FireCompletion(
void
) override;
virtual void FireCompletion();
Notes
La première version de la réinitialisation de FireCompletion()
la variable de délégué de progression interne. La deuxième version appelle le gestionnaire d’événements d’achèvement si l’opération asynchrone est terminée.
AsyncBase ::FireProgress
Appelle le gestionnaire d’événements de progression actuel.
void FireProgress(
const typename ProgressTraits::Arg2Type arg
);
Paramètres
arg
Méthode de gestionnaire d’événements à appeler.
Notes
ProgressTraits
est dérivé de la structure ArgTraitsHelper.
AsyncBase ::get_ErrorCode
Récupère le code d’erreur de l’opération asynchrone actuelle.
STDMETHOD(
get_ErrorCode
)(HRESULT* errorCode) override;
Paramètres
errorCode
Emplacement où le code d’erreur actuel est stocké.
Valeur de retour
S_OK en cas de réussite ; sinon, E_ILLEGAL_METHOD_CALL si l’opération asynchrone actuelle est fermée.
AsyncBase ::get_Id
Récupère le handle de l’opération asynchrone.
STDMETHOD(
get_Id
)(unsigned int *id) override;
Paramètres
id
Emplacement où le handle doit être stocké.
Valeur de retour
S_OK en cas de réussite ; sinon, E_ILLEGAL_METHOD_CALL.
Notes
Cette méthode implémente IAsyncInfo::get_Id
.
AsyncBase ::get_Status
Récupère une valeur qui indique l’état de l’opération asynchrone.
STDMETHOD(
get_Status
)(AsyncStatus *status) override;
Paramètres
statut
Emplacement où l’état doit être stocké. Pour plus d’informations, consultez Windows::Foundation::AsyncStatus
énumération.
Valeur de retour
S_OK en cas de réussite ; sinon, E_ILLEGAL_METHOD_CALL.
Notes
Cette méthode implémente IAsyncInfo::get_Status
.
AsyncBase ::GetOnComplete
Copie l’adresse du gestionnaire d’événements d’achèvement actuel dans la variable spécifiée.
STDMETHOD(
GetOnComplete
)(TComplete** completeHandler);
Paramètres
completeHandler
Emplacement où l’adresse du gestionnaire d’événements d’achèvement actuel est stockée.
Valeur de retour
S_OK en cas de réussite ; sinon, E_ILLEGAL_METHOD_CALL.
AsyncBase ::GetOnProgress
Copie l’adresse du gestionnaire d’événements de progression actuel dans la variable spécifiée.
STDMETHOD(
GetOnProgress
)(TProgress** progressHandler);
Paramètres
progressHandler
Emplacement où l’adresse du gestionnaire d’événements de progression actuel est stockée.
Valeur de retour
S_OK en cas de réussite ; sinon, E_ILLEGAL_METHOD_CALL.
AsyncBase ::OnCancel
En cas de substitution dans une classe dérivée, annule une opération asynchrone.
virtual void OnCancel(
void
) = 0;
AsyncBase ::OnClose
En cas de substitution dans une classe dérivée, ferme une opération asynchrone.
virtual void OnClose(
void
) = 0;
AsyncBase ::OnStart
En cas de substitution dans une classe dérivée, démarre une opération asynchrone.
virtual HRESULT OnStart(
void
) = 0;
AsyncBase ::p ut_Id
Définit le handle de l’opération asynchrone.
STDMETHOD(
put_Id
)(const unsigned int id);
Paramètres
id
Une poignée différente de zéro.
Valeur de retour
S_OK en cas de réussite ; sinon, E_INVALIDARG ou E_ILLEGAL_METHOD_CALL.
AsyncBase ::P utOnComplete
Définit l’adresse du gestionnaire d’événements d’achèvement sur la valeur spécifiée.
STDMETHOD(
PutOnComplete
)(TComplete* completeHandler);
Paramètres
completeHandler
Adresse à laquelle le gestionnaire d’événements d’achèvement est défini.
Valeur de retour
S_OK en cas de réussite ; sinon, E_ILLEGAL_METHOD_CALL.
AsyncBase ::P utOnProgress
Définit l’adresse du gestionnaire d’événements de progression sur la valeur spécifiée.
STDMETHOD(
PutOnProgress
)(TProgress* progressHandler);
Paramètres
progressHandler
Adresse à laquelle le gestionnaire d’événements de progression est défini.
Valeur de retour
S_OK en cas de réussite ; sinon, E_ILLEGAL_METHOD_CALL.
AsyncBase ::Start
Démarre l’opération asynchrone.
STDMETHOD(
Start
)(void);
Valeur de retour
S_OK si l’opération démarre ou est déjà démarrée ; sinon, E_ILLEGAL_STATE_CHANGE.
Notes
Start()
est une méthode protégée qui n’est pas visible en externe, car les opérations asynchrones « démarrage chaud » avant de revenir à l’appelant.
AsyncBase ::TryTransitionToCompleted
Indique si l’opération asynchrone actuelle est terminée.
bool TryTransitionToCompleted(
void
);
Valeur de retour
true
si l’opération asynchrone est terminée ; sinon, false
.
AsyncBase ::TryTransitionToError
Indique si le code d’erreur spécifié peut modifier l’état d’erreur interne.
bool TryTransitionToError(
const HRESULT error
);
Paramètres
error
Erreur HRESULT.
Valeur de retour
true
si l’état d’erreur interne a été modifié ; sinon, false
.
Notes
Cette opération modifie l’état d’erreur uniquement si l’état d’erreur est déjà défini sur S_OK. Cette opération n’a aucun effet si l’état d’erreur est déjà une erreur, annulé, terminé ou fermé.