Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Implementuje prostředí Windows Runtime asynchronní stavový počítač.
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>;
Parametry
Dokončování
Obslužná rutina události, která se volá při dokončení asynchronní operace.
TProgress
Obslužná rutina události, která se volá, když spuštěná asynchronní operace hlásí aktuální průběh operace.
resultType
Jedna z hodnot výčtu AsyncResultType . Ve výchozím nastavení . SingleResult
Členové
Veřejné konstruktory
| Název | Popis |
|---|---|
| AsyncBase::AsyncBase | Inicializuje instanci třídy AsyncBase. |
Veřejné metody
| Název | Popis |
|---|---|
| AsyncBase::Cancel | Zruší asynchronní operaci. |
| AsyncBase::Close | Zavře asynchronní operaci. |
| AsyncBase::FireCompletion | Vyvolá obslužnou rutinu události dokončení nebo resetuje interního delegáta průběhu. |
| AsyncBase::FireProgress | Vyvolá aktuální obslužnou rutinu události průběhu. |
| AsyncBase::get_ErrorCode | Načte kód chyby pro aktuální asynchronní operaci. |
| AsyncBase::get_Id | Načte popisovač asynchronní operace. |
| AsyncBase::get_Status | Načte hodnotu, která označuje stav asynchronní operace. |
| AsyncBase::GetOnComplete | Zkopíruje adresu aktuální obslužné rutiny události dokončení do zadané proměnné. |
| AsyncBase::GetOnProgress | Zkopíruje adresu aktuální obslužné rutiny události průběhu do zadané proměnné. |
| AsyncBase::p ut_Id | Nastaví popisovač asynchronní operace. |
| AsyncBase::P utOnComplete | Nastaví adresu obslužné rutiny události dokončení na zadanou hodnotu. |
| AsyncBase::P utOnProgress | Nastaví adresu obslužné rutiny události průběhu na zadanou hodnotu. |
Chráněné metody
| Název | Popis |
|---|---|
| AsyncBase::CheckValidStateForDelegateCall | Testuje, zda lze vlastnosti delegáta upravit v aktuálním asynchronním stavu. |
| AsyncBase::CheckValidStateForResultsCall | Testuje, zda lze výsledky asynchronní operace shromažďovat v aktuálním asynchronním stavu. |
| AsyncBase::ContinueAsyncOperation | Určuje, zda má asynchronní operace pokračovat ve zpracování, nebo by se měla zastavit. |
| AsyncBase::CurrentStatus | Načte stav aktuální asynchronní operace. |
| AsyncBase::ErrorCode | Načte kód chyby pro aktuální asynchronní operaci. |
| AsyncBase::OnCancel | Při přepsání v odvozené třídě zruší asynchronní operaci. |
| AsyncBase::OnClose | Při přepsání v odvozené třídě zavře asynchronní operaci. |
| AsyncBase::OnStart | Při přepsání v odvozené třídě spustí asynchronní operaci. |
| AsyncBase::Start | Spustí asynchronní operaci. |
| AsyncBase::TryTransitionToCompleted | Určuje, jestli se aktuální asynchronní operace dokončila. |
| AsyncBase::TryTransitionToError | Určuje, zda zadaný kód chyby může změnit vnitřní stav chyby. |
Hierarchie dědičnosti
AsyncBase
AsyncBase
Požadavky
Hlavička: async.h
Obor názvů: Microsoft::WRL
AsyncBase::AsyncBase
Inicializuje instanci třídy AsyncBase.
AsyncBase();
AsyncBase::Cancel
Zruší asynchronní operaci.
STDMETHOD(
Cancel
)(void);
Návratová hodnota
Ve výchozím nastavení vždy vrátí S_OK.
Poznámky
Cancel() je výchozí implementace a neprovádí žádnou skutečnou IAsyncInfo::Cancelpráci. Chcete-li skutečně zrušit asynchronní operaci, přepište čistou virtuální metodu OnCancel() .
AsyncBase::CheckValidStateForDelegateCall
Testuje, zda lze vlastnosti delegáta upravit v aktuálním asynchronním stavu.
inline HRESULT CheckValidStateForDelegateCall();
Návratová hodnota
S_OK, pokud lze upravit vlastnosti delegáta; jinak E_ILLEGAL_METHOD_CALL.
AsyncBase::CheckValidStateForResultsCall
Testuje, zda lze výsledky asynchronní operace shromažďovat v aktuálním asynchronním stavu.
inline HRESULT CheckValidStateForResultsCall();
Návratová hodnota
S_OK, pokud lze shromáždit výsledky; jinak E_ILLEGAL_METHOD_CALLE_ILLEGAL_METHOD_CALL.
AsyncBase::Close
Zavře asynchronní operaci.
STDMETHOD(
Close
)(void) override;
Návratová hodnota
S_OK, pokud se operace zavře nebo je již uzavřena; jinak E_ILLEGAL_STATE_CHANGE.
Poznámky
Close() je výchozí implementace a neprovádí žádnou skutečnou IAsyncInfo::Closepráci. Pokud chcete skutečně zavřít asynchronní operaci, přepište čistou virtuální metodu OnClose() .
AsyncBase::ContinueAsyncOperation
Určuje, zda má asynchronní operace pokračovat ve zpracování, nebo by se měla zastavit.
inline bool ContinueAsyncOperation();
Návratová hodnota
true pokud je spuštěn aktuální stav asynchronní operace, což znamená, že operace by měla pokračovat. Jinak , což znamená, falseže operace by se měla zastavit.
AsyncBase::CurrentStatus
Načte stav aktuální asynchronní operace.
inline void CurrentStatus(
Details::AsyncStatusInternal *status
);
Parametry
status
Umístění, kam tato operace ukládá aktuální stav.
Poznámky
Tato operace je bezpečná pro přístup z více vláken.
AsyncBase::ErrorCode
Načte kód chyby pro aktuální asynchronní operaci.
inline void ErrorCode(
HRESULT *error
);
Parametry
chyba
Umístění, kam tato operace ukládá aktuální kód chyby.
Poznámky
Tato operace je bezpečná pro přístup z více vláken.
AsyncBase::FireCompletion
Vyvolá obslužnou rutinu události dokončení nebo resetuje interního delegáta průběhu.
void FireCompletion(
void
) override;
virtual void FireCompletion();
Poznámky
První verze resetuje proměnnou delegáta interního FireCompletion() průběhu. Druhá verze vyvolá obslužnou rutinu události dokončení, pokud je asynchronní operace dokončena.
AsyncBase::FireProgress
Vyvolá aktuální obslužnou rutinu události průběhu.
void FireProgress(
const typename ProgressTraits::Arg2Type arg
);
Parametry
Arg
Metoda obslužné rutiny události, která se má vyvolat.
Poznámky
ProgressTraits je odvozena z ArgTraitsHelper Structure.
AsyncBase::get_ErrorCode
Načte kód chyby pro aktuální asynchronní operaci.
STDMETHOD(
get_ErrorCode
)(HRESULT* errorCode) override;
Parametry
errorCode
Umístění, kde je uložený aktuální kód chyby.
Návratová hodnota
S_OK v případě úspěchu; v opačném případě E_ILLEGAL_METHOD_CALL, pokud je aktuální asynchronní operace uzavřena.
AsyncBase::get_Id
Načte popisovač asynchronní operace.
STDMETHOD(
get_Id
)(unsigned int *id) override;
Parametry
id
Umístění, kam se má popisovač uložit.
Návratová hodnota
S_OK v případě úspěchu; jinak E_ILLEGAL_METHOD_CALL.
Poznámky
Tato metoda implementuje IAsyncInfo::get_Id.
AsyncBase::get_Status
Načte hodnotu, která označuje stav asynchronní operace.
STDMETHOD(
get_Status
)(AsyncStatus *status) override;
Parametry
status
Umístění, kam se má stav uložit. Další informace naleznete v výčtu Windows::Foundation::AsyncStatus .
Návratová hodnota
S_OK v případě úspěchu; jinak E_ILLEGAL_METHOD_CALL.
Poznámky
Tato metoda implementuje IAsyncInfo::get_Status.
AsyncBase::GetOnComplete
Zkopíruje adresu aktuální obslužné rutiny události dokončení do zadané proměnné.
STDMETHOD(
GetOnComplete
)(TComplete** completeHandler);
Parametry
completeHandler
Umístění, kde je uložena adresa aktuální obslužné rutiny události dokončení.
Návratová hodnota
S_OK v případě úspěchu; jinak E_ILLEGAL_METHOD_CALL.
AsyncBase::GetOnProgress
Zkopíruje adresu aktuální obslužné rutiny události průběhu do zadané proměnné.
STDMETHOD(
GetOnProgress
)(TProgress** progressHandler);
Parametry
progressHandler
Umístění, kde je uložena adresa aktuální obslužné rutiny události průběhu.
Návratová hodnota
S_OK v případě úspěchu; jinak E_ILLEGAL_METHOD_CALL.
AsyncBase::OnCancel
Při přepsání v odvozené třídě zruší asynchronní operaci.
virtual void OnCancel(
void
) = 0;
AsyncBase::OnClose
Při přepsání v odvozené třídě zavře asynchronní operaci.
virtual void OnClose(
void
) = 0;
AsyncBase::OnStart
Při přepsání v odvozené třídě spustí asynchronní operaci.
virtual HRESULT OnStart(
void
) = 0;
AsyncBase::p ut_Id
Nastaví popisovač asynchronní operace.
STDMETHOD(
put_Id
)(const unsigned int id);
Parametry
id
Nenulový úchyt.
Návratová hodnota
S_OK v případě úspěchu; v opačném případě E_INVALIDARG nebo E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnComplete
Nastaví adresu obslužné rutiny události dokončení na zadanou hodnotu.
STDMETHOD(
PutOnComplete
)(TComplete* completeHandler);
Parametry
completeHandler
Adresa, na kterou je nastavena obslužná rutina události dokončení.
Návratová hodnota
S_OK v případě úspěchu; jinak E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnProgress
Nastaví adresu obslužné rutiny události průběhu na zadanou hodnotu.
STDMETHOD(
PutOnProgress
)(TProgress* progressHandler);
Parametry
progressHandler
Adresa, na kterou je nastavena obslužná rutina události průběhu.
Návratová hodnota
S_OK v případě úspěchu; jinak E_ILLEGAL_METHOD_CALL.
AsyncBase::Start
Spustí asynchronní operaci.
STDMETHOD(
Start
)(void);
Návratová hodnota
S_OK, pokud se operace spustí nebo je již spuštěna; jinak E_ILLEGAL_STATE_CHANGE.
Poznámky
Start() je chráněná metoda, která není externě viditelná, protože asynchronní operace "hot start" před návratem do volajícího.
AsyncBase::TryTransitionToCompleted
Určuje, jestli se aktuální asynchronní operace dokončila.
bool TryTransitionToCompleted(
void
);
Návratová hodnota
truepokud byla asynchronní operace dokončena; v opačném případě . false
AsyncBase::TryTransitionToError
Určuje, zda zadaný kód chyby může změnit vnitřní stav chyby.
bool TryTransitionToError(
const HRESULT error
);
Parametry
chyba
Chyba HRESULT.
Návratová hodnota
truepokud došlo ke změně stavu vnitřní chyby; v opačném případě . false
Poznámky
Tato operace upraví stav chyby pouze v případě, že je stav chyby již nastavený na S_OK. Tato operace nemá žádný vliv, pokud je již chybový stav chyb, zrušen, dokončen nebo uzavřen.