Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Implementuje maszynę stanu asynchronicznego środowisko wykonawcze systemu Windows.
Składnia
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
TComplete
Procedura obsługi zdarzeń wywoływana po zakończeniu operacji asynchronicznej.
TProgress
Procedura obsługi zdarzeń wywoływana, gdy uruchomiona operacja asynchroniczna zgłasza bieżący postęp operacji.
resultType
Jedna z wartości wyliczenia AsyncResultType. Domyślnie . SingleResult
Elementy członkowskie
Konstruktory publiczne
| Nazwa/nazwisko | opis |
|---|---|
| AsyncBase::AsyncBase | Inicjuje wystąpienie klasy AsyncBase. |
Metody publiczne
| Nazwa/nazwisko | opis |
|---|---|
| AsyncBase::Cancel | Anuluje operację asynchroniczną. |
| AsyncBase::Close | Zamyka operację asynchroniczną. |
| AsyncBase::FireCompletion | Wywołuje procedurę obsługi zdarzeń ukończenia lub resetuje delegata postępu wewnętrznego. |
| AsyncBase::FireProgress | Wywołuje bieżącą procedurę obsługi zdarzeń postępu. |
| AsyncBase::get_ErrorCode | Pobiera kod błędu dla bieżącej operacji asynchronicznej. |
| AsyncBase::get_Id | Pobiera uchwyt operacji asynchronicznej. |
| AsyncBase::get_Status | Pobiera wartość wskazującą stan operacji asynchronicznej. |
| AsyncBase::GetOnComplete | Kopiuje adres bieżącego programu obsługi zdarzeń ukończenia do określonej zmiennej. |
| AsyncBase::GetOnProgress | Kopiuje adres bieżącego programu obsługi zdarzeń postępu do określonej zmiennej. |
| AsyncBase::p ut_Id | Ustawia uchwyt operacji asynchronicznej. |
| AsyncBase::P utOnComplete | Ustawia adres programu obsługi zdarzeń ukończenia na określoną wartość. |
| AsyncBase::P utOnProgress | Ustawia adres procedury obsługi zdarzeń postępu na określoną wartość. |
Metody chronione
| Nazwa/nazwisko | opis |
|---|---|
| AsyncBase::CheckValidStateForDelegateCall | Sprawdza, czy właściwości delegata można modyfikować w bieżącym stanie asynchronicznym. |
| AsyncBase::CheckValidStateForResultsCall | Sprawdza, czy wyniki operacji asynchronicznej można zebrać w bieżącym stanie asynchronicznym. |
| AsyncBase::ContinueAsyncOperation | Określa, czy operacja asynchroniczna powinna kontynuować przetwarzanie, czy powinna zostać zatrzymana. |
| AsyncBase::CurrentStatus | Pobiera stan bieżącej operacji asynchronicznej. |
| AsyncBase::ErrorCode | Pobiera kod błędu dla bieżącej operacji asynchronicznej. |
| AsyncBase::OnCancel | Po zastąpieniu w klasie pochodnej anuluje operację asynchroniczną. |
| AsyncBase::OnClose | Po zastąpieniu w klasie pochodnej zamyka operację asynchroniczną. |
| AsyncBase::OnStart | Po zastąpieniu w klasie pochodnej uruchamia operację asynchroniczną. |
| AsyncBase::Start | Uruchamia operację asynchroniczną. |
| AsyncBase::TryTransitionToCompleted | Wskazuje, czy bieżąca operacja asynchroniczna została ukończona. |
| AsyncBase::TryTransitionToError | Wskazuje, czy określony kod błędu może modyfikować stan błędu wewnętrznego. |
Hierarchia dziedziczenia
AsyncBase
AsyncBase
Wymagania
Nagłówek: async.h
Przestrzeń nazw: Microsoft::WRL
AsyncBase::AsyncBase
Inicjuje wystąpienie klasy AsyncBase.
AsyncBase();
AsyncBase::Cancel
Anuluje operację asynchroniczną.
STDMETHOD(
Cancel
)(void);
Wartość zwracana
Domyślnie zawsze zwraca S_OK.
Uwagi
Cancel() jest domyślną implementacją parametru i nie wykonuje żadnej rzeczywistej IAsyncInfo::Cancelpracy. Aby rzeczywiście anulować operację asynchroniczną, przesłoń czystą metodę wirtualną OnCancel() .
AsyncBase::CheckValidStateForDelegateCall
Sprawdza, czy właściwości delegata można modyfikować w bieżącym stanie asynchronicznym.
inline HRESULT CheckValidStateForDelegateCall();
Wartość zwracana
S_OK, jeśli można zmodyfikować właściwości delegata; w przeciwnym razie E_ILLEGAL_METHOD_CALL.
AsyncBase::CheckValidStateForResultsCall
Sprawdza, czy wyniki operacji asynchronicznej można zebrać w bieżącym stanie asynchronicznym.
inline HRESULT CheckValidStateForResultsCall();
Wartość zwracana
S_OK, jeśli można zbierać wyniki; w przeciwnym razie E_ILLEGAL_METHOD_CALLE_ILLEGAL_METHOD_CALL.
AsyncBase::Close
Zamyka operację asynchroniczną.
STDMETHOD(
Close
)(void) override;
Wartość zwracana
S_OK, jeśli operacja zostanie zamknięta lub została już zamknięta; w przeciwnym razie E_ILLEGAL_STATE_CHANGE.
Uwagi
Close() jest domyślną implementacją parametru i nie wykonuje żadnej rzeczywistej IAsyncInfo::Closepracy. Aby faktycznie zamknąć operację asynchroniczną, przesłoń czystą metodę wirtualną OnClose() .
AsyncBase::ContinueAsyncOperation
Określa, czy operacja asynchroniczna powinna kontynuować przetwarzanie, czy powinna zostać zatrzymana.
inline bool ContinueAsyncOperation();
Wartość zwracana
truejeśli uruchomiony jest bieżący stan operacji asynchronicznej, co oznacza, że operacja powinna być kontynuowana. W przeciwnym razie , co oznacza, falseże operacja powinna zostać zatrzymana.
AsyncBase::CurrentStatus
Pobiera stan bieżącej operacji asynchronicznej.
inline void CurrentStatus(
Details::AsyncStatusInternal *status
);
Parametry
status
Lokalizacja, w której ta operacja przechowuje bieżący stan.
Uwagi
Ta operacja jest bezpieczna wątkowo.
AsyncBase::ErrorCode
Pobiera kod błędu dla bieżącej operacji asynchronicznej.
inline void ErrorCode(
HRESULT *error
);
Parametry
błąd
Lokalizacja, w której ta operacja przechowuje bieżący kod błędu.
Uwagi
Ta operacja jest bezpieczna wątkowo.
AsyncBase::FireCompletion
Wywołuje procedurę obsługi zdarzeń ukończenia lub resetuje delegata postępu wewnętrznego.
void FireCompletion(
void
) override;
virtual void FireCompletion();
Uwagi
Pierwsza wersja resetuje FireCompletion() wewnętrzną zmienną delegata postępu. Druga wersja wywołuje procedurę obsługi zdarzeń ukończenia, jeśli operacja asynchroniczna została ukończona.
AsyncBase::FireProgress
Wywołuje bieżącą procedurę obsługi zdarzeń postępu.
void FireProgress(
const typename ProgressTraits::Arg2Type arg
);
Parametry
Arg
Metoda obsługi zdarzeń do wywołania.
Uwagi
ProgressTraits pochodzi ze struktury ArgTraitsHelper.
AsyncBase::get_ErrorCode
Pobiera kod błędu dla bieżącej operacji asynchronicznej.
STDMETHOD(
get_ErrorCode
)(HRESULT* errorCode) override;
Parametry
errorCode
Lokalizacja, w której jest przechowywany bieżący kod błędu.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_ILLEGAL_METHOD_CALL, jeśli bieżąca operacja asynchroniczna jest zamknięta.
AsyncBase::get_Id
Pobiera uchwyt operacji asynchronicznej.
STDMETHOD(
get_Id
)(unsigned int *id) override;
Parametry
id
Lokalizacja, w której ma być przechowywany uchwyt.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_ILLEGAL_METHOD_CALL.
Uwagi
Ta metoda implementuje metodę IAsyncInfo::get_Id.
AsyncBase::get_Status
Pobiera wartość wskazującą stan operacji asynchronicznej.
STDMETHOD(
get_Status
)(AsyncStatus *status) override;
Parametry
status
Lokalizacja, w której ma być przechowywany stan. Aby uzyskać więcej informacji, zobacz Windows::Foundation::AsyncStatus wyliczenie.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_ILLEGAL_METHOD_CALL.
Uwagi
Ta metoda implementuje metodę IAsyncInfo::get_Status.
AsyncBase::GetOnComplete
Kopiuje adres bieżącego programu obsługi zdarzeń ukończenia do określonej zmiennej.
STDMETHOD(
GetOnComplete
)(TComplete** completeHandler);
Parametry
completeHandler
Lokalizacja, w której jest przechowywany adres bieżącego programu obsługi zdarzeń ukończenia.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_ILLEGAL_METHOD_CALL.
AsyncBase::GetOnProgress
Kopiuje adres bieżącego programu obsługi zdarzeń postępu do określonej zmiennej.
STDMETHOD(
GetOnProgress
)(TProgress** progressHandler);
Parametry
progressHandler
Lokalizacja, w której jest przechowywany adres bieżącego programu obsługi zdarzeń postępu.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_ILLEGAL_METHOD_CALL.
AsyncBase::OnCancel
Po zastąpieniu w klasie pochodnej anuluje operację asynchroniczną.
virtual void OnCancel(
void
) = 0;
AsyncBase::OnClose
Po zastąpieniu w klasie pochodnej zamyka operację asynchroniczną.
virtual void OnClose(
void
) = 0;
AsyncBase::OnStart
Po zastąpieniu w klasie pochodnej uruchamia operację asynchroniczną.
virtual HRESULT OnStart(
void
) = 0;
AsyncBase::p ut_Id
Ustawia uchwyt operacji asynchronicznej.
STDMETHOD(
put_Id
)(const unsigned int id);
Parametry
id
Uchwyt niezerowy.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_INVALIDARG lub E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnComplete
Ustawia adres programu obsługi zdarzeń ukończenia na określoną wartość.
STDMETHOD(
PutOnComplete
)(TComplete* completeHandler);
Parametry
completeHandler
Adres, do którego ustawiono procedurę obsługi zdarzeń ukończenia.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnProgress
Ustawia adres procedury obsługi zdarzeń postępu na określoną wartość.
STDMETHOD(
PutOnProgress
)(TProgress* progressHandler);
Parametry
progressHandler
Adres, do którego ustawiono procedurę obsługi zdarzeń postępu.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_ILLEGAL_METHOD_CALL.
AsyncBase::Start
Uruchamia operację asynchroniczną.
STDMETHOD(
Start
)(void);
Wartość zwracana
S_OK, jeśli operacja zostanie uruchomiona lub została już uruchomiona; w przeciwnym razie E_ILLEGAL_STATE_CHANGE.
Uwagi
Start() jest chronioną metodą, która nie jest widoczna zewnętrznie, ponieważ operacje asynchroniczne "hot start" przed powrotem do obiektu wywołującego.
AsyncBase::TryTransitionToCompleted
Wskazuje, czy bieżąca operacja asynchroniczna została ukończona.
bool TryTransitionToCompleted(
void
);
Wartość zwracana
true jeśli operacja asynchroniczna została ukończona; w przeciwnym razie, false.
AsyncBase::TryTransitionToError
Wskazuje, czy określony kod błędu może modyfikować stan błędu wewnętrznego.
bool TryTransitionToError(
const HRESULT error
);
Parametry
błąd
Błąd HRESULT.
Wartość zwracana
true jeśli stan błędu wewnętrznego został zmieniony; w przeciwnym razie, false.
Uwagi
Ta operacja modyfikuje stan błędu tylko wtedy, gdy stan błędu jest już ustawiony na S_OK. Ta operacja nie ma wpływu, jeśli stan błędu jest już błąd, anulowany, ukończony lub zamknięty.