AsyncBase-Klasse
Implementiert den asynchronen Zustandsautomat der Windows-Runtime.
Syntax
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>;
Parameter
TVervollständigen
Ein Ereignishandler, der aufgerufen wird, wenn ein asynchroner Vorgang abgeschlossen ist.
TProgress
Ein Ereignishandler, der aufgerufen wird, wenn ein ausgeführter asynchroner Vorgang den aktuellen Status des Vorgangs meldet.
resultType
Einer der AsyncResultType-Enumerationswerte . Standardmäßig SingleResult
.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
AsyncBase::AsyncBase | Initialisiert eine Instanz der AsyncBase -Klasse. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
AsyncBase::Cancel | Bricht einen asynchronen Vorgang ab. |
AsyncBase::Close | Schließt den asynchronen Vorgang. |
AsyncBase::FireCompletion | Ruft den Abschlussereignishandler auf oder setzt den internen Statusdelegat zurück. |
AsyncBase::FireProgress | Ruft den aktuellen Statusereignishandler auf. |
AsyncBase::get_ErrorCode | Ruft den Fehlercode für den aktuellen asynchronen Vorgang ab. |
AsyncBase::get_Id | Ruft das Handle des asynchronen Vorgangs ab. |
AsyncBase::get_Status | Ruft einen Wert ab, der den Status des asynchronen Vorgangs angibt. |
AsyncBase::GetOnComplete | Kopiert die Adresse des aktuellen Abschlussereignishandlers in die angegebene Variable. |
AsyncBase::GetOnProgress | Kopiert die Adresse des aktuellen Statusereignishandlers in die angegebene Variable. |
AsyncBase::p ut_Id | Legt das Handle des asynchronen Vorgangs fest. |
AsyncBase::P utOnComplete | Legt die Adresse des Abschlussereignishandlers auf den angegebenen Wert fest. |
AsyncBase::P utOnProgress | Legt die Adresse des Statusereignishandlers auf den angegebenen Wert fest. |
Geschützte Methoden
Name | Beschreibung |
---|---|
AsyncBase::CheckValidStateForDelegateCall | Testet, ob Stellvertretungseigenschaften im aktuellen asynchronen Zustand geändert werden können. |
AsyncBase::CheckValidStateForResultsCall | Überprüft, ob die Ergebnisse eines asynchronen Vorgangs im aktuellen asynchronen Zustand erfasst werden können. |
AsyncBase::ContinueAsyncOperation | Bestimmt, ob der asynchrone Vorgang die Verarbeitung fortsetzen oder anhalten soll. |
AsyncBase::CurrentStatus | Ruft den Status des aktuellen asynchronen Vorgangs ab. |
AsyncBase::ErrorCode | Ruft den Fehlercode für den aktuellen asynchronen Vorgang ab. |
AsyncBase::OnCancel | Bricht beim Überschreiben in einer abgeleiteten Klasse einen asynchronen -Vorgang ab. |
AsyncBase::OnClose | Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein asynchroner Vorgang geschlossen. |
AsyncBase::OnStart | Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein asynchroner Vorgang gestartet. |
AsyncBase::Start | Startet den asynchronen Vorgang. |
AsyncBase::TryTransitionToCompleted | Gibt an, ob der aktuelle asynchrone Vorgang abgeschlossen wurde. |
AsyncBase::TryTransitionToError | Gibt an, ob der angegebene Fehlercode den internen Fehlerstatus ändern kann. |
Vererbungshierarchie
AsyncBase
AsyncBase
Anforderungen
Header: async.h
Namespace: Microsoft::WRL
AsyncBase::AsyncBase
Initialisiert eine Instanz der AsyncBase
-Klasse.
AsyncBase();
AsyncBase::Cancel
Bricht einen asynchronen Vorgang ab.
STDMETHOD(
Cancel
)(void);
Rückgabewert
Gibt standardmäßig immer S_OK zurück.
Hinweise
Cancel()
ist eine Standardimplementierung von IAsyncInfo::Cancel
und funktioniert nicht tatsächlich. Um einen asynchronen Vorgang tatsächlich abzubrechen, überschreiben Sie die OnCancel()
reine virtuelle Methode.
AsyncBase::CheckValidStateForDelegateCall
Testet, ob Stellvertretungseigenschaften im aktuellen asynchronen Zustand geändert werden können.
inline HRESULT CheckValidStateForDelegateCall();
Rückgabewert
S_OK, wenn Stellvertretungseigenschaften geändert werden können; andernfalls E_ILLEGAL_METHOD_CALL.
AsyncBase::CheckValidStateForResultsCall
Überprüft, ob die Ergebnisse eines asynchronen Vorgangs im aktuellen asynchronen Zustand erfasst werden können.
inline HRESULT CheckValidStateForResultsCall();
Rückgabewert
S_OK, wenn Ergebnisse gesammelt werden können; andernfalls E_ILLEGAL_METHOD_CALLE_ILLEGAL_METHOD_CALL.
AsyncBase::Close
Schließt den asynchronen Vorgang.
STDMETHOD(
Close
)(void) override;
Rückgabewert
S_OK, wenn der Vorgang geschlossen oder bereits geschlossen wird; andernfalls E_ILLEGAL_STATE_CHANGE.
Hinweise
Close()
ist eine Standardimplementierung von IAsyncInfo::Close
und funktioniert nicht tatsächlich. Um einen asynchronen Vorgang tatsächlich zu schließen, überschreiben Sie die OnClose()
reine virtuelle Methode.
AsyncBase::ContinueAsyncOperation
Bestimmt, ob der asynchrone Vorgang die Verarbeitung fortsetzen oder anhalten soll.
inline bool ContinueAsyncOperation();
Rückgabewert
true
wenn der aktuelle Zustand des asynchronen Vorgangs gestartet wird, was bedeutet, dass der Vorgang fortgesetzt werden soll. false
Andernfalls sollte der Vorgang angehalten werden.
AsyncBase::CurrentStatus
Ruft den Status des aktuellen asynchronen Vorgangs ab.
inline void CurrentStatus(
Details::AsyncStatusInternal *status
);
Parameter
status
Der Speicherort, an dem dieser Vorgang den aktuellen Status speichert.
Hinweise
Dieser Vorgang ist threadsicher.
AsyncBase::ErrorCode
Ruft den Fehlercode für den aktuellen asynchronen Vorgang ab.
inline void ErrorCode(
HRESULT *error
);
Parameter
error
Der Speicherort, an dem dieser Vorgang den aktuellen Fehlercode speichert.
Hinweise
Dieser Vorgang ist threadsicher.
AsyncBase::FireCompletion
Ruft den Abschlussereignishandler auf oder setzt den internen Statusdelegat zurück.
void FireCompletion(
void
) override;
virtual void FireCompletion();
Hinweise
Die erste Version der FireCompletion()
Zurücksetzung der internen Statusdelegatvariable. Die zweite Version ruft den Abschlussereignishandler auf, wenn der asynchrone Vorgang abgeschlossen ist.
AsyncBase::FireProgress
Ruft den aktuellen Statusereignishandler auf.
void FireProgress(
const typename ProgressTraits::Arg2Type arg
);
Parameter
arg
Die ereignishandlermethode, die aufgerufen werden soll.
Hinweise
ProgressTraits
wird von der ArgTraitsHelper-Struktur abgeleitet.
AsyncBase::get_ErrorCode
Ruft den Fehlercode für den aktuellen asynchronen Vorgang ab.
STDMETHOD(
get_ErrorCode
)(HRESULT* errorCode) override;
Parameter
errorCode
Der Speicherort, an dem der aktuelle Fehlercode gespeichert ist.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_ILLEGAL_METHOD_CALL, wenn der aktuelle asynchrone Vorgang geschlossen wird.
AsyncBase::get_Id
Ruft das Handle des asynchronen Vorgangs ab.
STDMETHOD(
get_Id
)(unsigned int *id) override;
Parameter
id
Der Speicherort, an dem das Handle gespeichert werden soll.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_ILLEGAL_METHOD_CALL.
Hinweise
Diese Methode implementiert IAsyncInfo::get_Id
.
AsyncBase::get_Status
Ruft einen Wert ab, der den Status des asynchronen Vorgangs angibt.
STDMETHOD(
get_Status
)(AsyncStatus *status) override;
Parameter
status
Der Speicherort, an dem der Status gespeichert werden soll. Weitere Informationen finden Sie unter Windows::Foundation::AsyncStatus
Enumeration.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_ILLEGAL_METHOD_CALL.
Hinweise
Diese Methode implementiert IAsyncInfo::get_Status
.
AsyncBase::GetOnComplete
Kopiert die Adresse des aktuellen Abschlussereignishandlers in die angegebene Variable.
STDMETHOD(
GetOnComplete
)(TComplete** completeHandler);
Parameter
completeHandler
Der Speicherort, an dem die Adresse des aktuellen Abschlussereignishandlers gespeichert ist.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_ILLEGAL_METHOD_CALL.
AsyncBase::GetOnProgress
Kopiert die Adresse des aktuellen Statusereignishandlers in die angegebene Variable.
STDMETHOD(
GetOnProgress
)(TProgress** progressHandler);
Parameter
progressHandler
Der Speicherort, an dem die Adresse des aktuellen Statusereignishandlers gespeichert ist.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_ILLEGAL_METHOD_CALL.
AsyncBase::OnCancel
Bricht beim Überschreiben in einer abgeleiteten Klasse einen asynchronen -Vorgang ab.
virtual void OnCancel(
void
) = 0;
AsyncBase::OnClose
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein asynchroner Vorgang geschlossen.
virtual void OnClose(
void
) = 0;
AsyncBase::OnStart
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein asynchroner Vorgang gestartet.
virtual HRESULT OnStart(
void
) = 0;
AsyncBase::p ut_Id
Legt das Handle des asynchronen Vorgangs fest.
STDMETHOD(
put_Id
)(const unsigned int id);
Parameter
id
Ein Nichtzero-Handle.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_INVALIDARG oder E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnComplete
Legt die Adresse des Abschlussereignishandlers auf den angegebenen Wert fest.
STDMETHOD(
PutOnComplete
)(TComplete* completeHandler);
Parameter
completeHandler
Die Adresse, auf die der Abschlussereignishandler festgelegt ist.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnProgress
Legt die Adresse des Statusereignishandlers auf den angegebenen Wert fest.
STDMETHOD(
PutOnProgress
)(TProgress* progressHandler);
Parameter
progressHandler
Die Adresse, auf die der Statusereignishandler festgelegt ist.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_ILLEGAL_METHOD_CALL.
AsyncBase::Start
Startet den asynchronen Vorgang.
STDMETHOD(
Start
)(void);
Rückgabewert
S_OK, wenn der Vorgang gestartet oder bereits gestartet wird; andernfalls E_ILLEGAL_STATE_CHANGE.
Hinweise
Start()
ist eine geschützte Methode, die nicht extern sichtbar ist, da asynchrone Vorgänge "Hot Start" vor der Rückgabe an den Aufrufer ausgeführt werden.
AsyncBase::TryTransitionToCompleted
Gibt an, ob der aktuelle asynchrone Vorgang abgeschlossen wurde.
bool TryTransitionToCompleted(
void
);
Rückgabewert
true
wenn der asynchrone Vorgang abgeschlossen ist; andernfalls . false
AsyncBase::TryTransitionToError
Gibt an, ob der angegebene Fehlercode den internen Fehlerstatus ändern kann.
bool TryTransitionToError(
const HRESULT error
);
Parameter
error
Fehler HRESULT.
Rückgabewert
true
wenn der interne Fehlerstatus geändert wurde; andernfalls . false
Hinweise
Dieser Vorgang ändert den Fehlerstatus nur, wenn der Fehlerzustand bereits auf S_OK festgelegt ist. Dieser Vorgang hat keine Auswirkung, wenn der Fehlerstatus bereits fehler, abgebrochen, abgeschlossen oder geschlossen ist.