Partager via


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, falsece 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é.