AsyncBase Sınıfı

Windows Çalışma Zamanı zaman uyumsuz durum makinesini uygular.

Sözdizimi

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>;

Parametreler

TComplete
Zaman uyumsuz bir işlem tamamlandığında çağrılan olay işleyicisi.

TProgress
Çalışan bir zaman uyumsuz işlem işlemin geçerli ilerleme durumunu bildirdiğinde çağrılan bir olay işleyicisi.

resultType
AsyncResultType numaralandırma değerlerinden biri. Varsayılan olarak, SingleResult.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
AsyncBase::AsyncBase AsyncBase sınıfının örneğini başlatır.

Genel Yöntemler

Veri Akışı Adı Açıklama
AsyncBase::Cancel Zaman uyumsuz bir işlemi iptal eder.
AsyncBase::Close Zaman uyumsuz işlemi kapatır.
AsyncBase::FireCompletion Tamamlama olayı işleyicisini çağırır veya iç ilerleme temsilcisini sıfırlar.
AsyncBase::FireProgress Geçerli ilerleme durumu olay işleyicisini çağırır.
AsyncBase::get_ErrorCode Geçerli zaman uyumsuz işlemin hata kodunu alır.
AsyncBase::get_Id Zaman uyumsuz işlemin tutamacını alır.
AsyncBase::get_Status Zaman uyumsuz işlemin durumunu gösteren bir değer alır.
AsyncBase::GetOnComplete Geçerli tamamlama olay işleyicisinin adresini belirtilen değişkene kopyalar.
AsyncBase::GetOnProgress Geçerli ilerleme durumu olay işleyicisinin adresini belirtilen değişkene kopyalar.
AsyncBase::p ut_Id Zaman uyumsuz işlemin tutamacını ayarlar.
AsyncBase::P utOnComplete Tamamlanma olay işleyicisinin adresini belirtilen değere ayarlar.
AsyncBase::P utOnProgress İlerleme olayı işleyicisinin adresini belirtilen değere ayarlar.

Korumalı Yöntemler

Veri Akışı Adı Açıklama
AsyncBase::CheckValidStateForDelegateCall Temsilci özelliklerinin geçerli zaman uyumsuz durumda değiştirilip değiştirilemeyeceğini sınar.
AsyncBase::CheckValidStateForResultsCall Zaman uyumsuz bir işlemin sonuçlarının geçerli zaman uyumsuz durumda toplanıp toplanamayacağını test eder.
AsyncBase::ContinueAsyncOperation Zaman uyumsuz işlemin işlemeye devam etmesi mi yoksa durması mı gerektiğini belirler.
AsyncBase::CurrentStatus Geçerli zaman uyumsuz işlemin durumunu alır.
AsyncBase::ErrorCode Geçerli zaman uyumsuz işlemin hata kodunu alır.
AsyncBase::OnCancel Türetilmiş bir sınıfta geçersiz kılındığında, zaman uyumsuz bir işlemi iptal eder.
AsyncBase::OnClose Türetilmiş bir sınıfta geçersiz kılındığında, zaman uyumsuz işlemi kapatır.
AsyncBase::OnStart Türetilmiş bir sınıfta geçersiz kılındığında, zaman uyumsuz bir işlem başlatır.
AsyncBase::Start Zaman uyumsuz işlemi başlatır.
AsyncBase::TryTransitionToCompleted Geçerli zaman uyumsuz işlemin tamamlanıp tamamlanmadığını gösterir.
AsyncBase::TryTransitionToError Belirtilen hata kodunun iç hata durumunu değiştirip değiştiremeyeceğini gösterir.

Devralma Hiyerarşisi

AsyncBase

AsyncBase

Gereksinimler

Üst bilgi: async.h

Ad Alanı: Microsoft::WRL

AsyncBase::AsyncBase

AsyncBase sınıfının örneğini başlatır.

AsyncBase();

AsyncBase::Cancel

Zaman uyumsuz bir işlemi iptal eder.

STDMETHOD(
   Cancel
)(void);

Dönüş Değeri

Varsayılan olarak, her zaman S_OK döndürür.

Açıklamalar

Cancel() varsayılan uygulamasıdır IAsyncInfo::Cancelve gerçek bir çalışma yapmaz. Zaman uyumsuz bir işlemi gerçekten iptal etmek için saf sanal yöntemi geçersiz kılın OnCancel() .

AsyncBase::CheckValidStateForDelegateCall

Temsilci özelliklerinin geçerli zaman uyumsuz durumda değiştirilip değiştirilemeyeceğini sınar.

inline HRESULT CheckValidStateForDelegateCall();

Dönüş Değeri

Temsilci özelliklerinin değiştirilip değiştirilebileceğini S_OK; aksi takdirde E_ILLEGAL_METHOD_CALL.

AsyncBase::CheckValidStateForResultsCall

Zaman uyumsuz bir işlemin sonuçlarının geçerli zaman uyumsuz durumda toplanıp toplanamayacağını test eder.

inline HRESULT CheckValidStateForResultsCall();

Dönüş Değeri

Sonuçların toplanıp toplanmayabileceğini S_OK; aksi takdirde E_ILLEGAL_METHOD_CALLE_ILLEGAL_METHOD_CALL.

AsyncBase::Close

Zaman uyumsuz işlemi kapatır.

STDMETHOD(
   Close
)(void) override;

Dönüş Değeri

İşlemin kapatılıp kapatılmadığını veya zaten kapatılıp kapatılmadığını S_OK; aksi takdirde E_ILLEGAL_STATE_CHANGE.

Açıklamalar

Close() varsayılan uygulamasıdır IAsyncInfo::Closeve gerçek bir çalışma yapmaz. Zaman uyumsuz bir işlemi gerçekten kapatmak için saf sanal yöntemi geçersiz kılın OnClose() .

AsyncBase::ContinueAsyncOperation

Zaman uyumsuz işlemin işlemeye devam etmesi mi yoksa durması mı gerektiğini belirler.

inline bool ContinueAsyncOperation();

Dönüş Değeri

true zaman uyumsuz işlemin geçerli durumu başlatılırsa, bu işlemin devam etmesi gerektiği anlamına gelir. Aksi takdirde , falsebu işlemin durdurulması gerektiği anlamına gelir.

AsyncBase::CurrentStatus

Geçerli zaman uyumsuz işlemin durumunu alır.

inline void CurrentStatus(
   Details::AsyncStatusInternal *status
);

Parametreler

durum
Bu işlemin geçerli durumu depoladığı konum.

Açıklamalar

Bu işlem iş parçacığı açısından güvenlidir.

AsyncBase::ErrorCode

Geçerli zaman uyumsuz işlemin hata kodunu alır.

inline void ErrorCode(
   HRESULT *error
);

Parametreler

hata
Bu işlemin geçerli hata kodunu depoladığı konum.

Açıklamalar

Bu işlem iş parçacığı açısından güvenlidir.

AsyncBase::FireCompletion

Tamamlama olayı işleyicisini çağırır veya iç ilerleme temsilcisini sıfırlar.

void FireCompletion(
   void
) override;

virtual void FireCompletion();

Açıklamalar

İlk sürümü iç FireCompletion() ilerleme temsilcisi değişkenini sıfırlar. İkinci sürüm, zaman uyumsuz işlem tamamlandıysa tamamlama olay işleyicisini çağırır.

AsyncBase::FireProgress

Geçerli ilerleme durumu olay işleyicisini çağırır.

void FireProgress(
   const typename ProgressTraits::Arg2Type arg
);

Parametreler

Arg
Çağrılacak olay işleyici yöntemi.

Açıklamalar

ProgressTraitsArgTraitsHelper Yapısından türetilmiştir.

AsyncBase::get_ErrorCode

Geçerli zaman uyumsuz işlemin hata kodunu alır.

STDMETHOD(
   get_ErrorCode
)(HRESULT* errorCode) override;

Parametreler

errorCode
Geçerli hata kodunun depolandığı konum.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde, geçerli zaman uyumsuz işlemin kapatılıp kapatılamadığını E_ILLEGAL_METHOD_CALL.

AsyncBase::get_Id

Zaman uyumsuz işlemin tutamacını alır.

STDMETHOD(
   get_Id
)(unsigned int *id) override;

Parametreler

id
Tanıtıcının depolandığı konum.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde E_ILLEGAL_METHOD_CALL.

Açıklamalar

Bu yöntem uygular IAsyncInfo::get_Id.

AsyncBase::get_Status

Zaman uyumsuz işlemin durumunu gösteren bir değer alır.

STDMETHOD(
   get_Status
)(AsyncStatus *status) override;

Parametreler

durum
Durumun depolandığı konum. Daha fazla bilgi için bkz Windows::Foundation::AsyncStatus . numaralandırma.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde E_ILLEGAL_METHOD_CALL.

Açıklamalar

Bu yöntem uygular IAsyncInfo::get_Status.

AsyncBase::GetOnComplete

Geçerli tamamlama olay işleyicisinin adresini belirtilen değişkene kopyalar.

STDMETHOD(
   GetOnComplete
)(TComplete** completeHandler);

Parametreler

completeHandler
Geçerli tamamlama olay işleyicisinin adresinin depolandığı konum.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde E_ILLEGAL_METHOD_CALL.

AsyncBase::GetOnProgress

Geçerli ilerleme durumu olay işleyicisinin adresini belirtilen değişkene kopyalar.

STDMETHOD(
   GetOnProgress
)(TProgress** progressHandler);

Parametreler

progressHandler
Geçerli ilerleme durumu olay işleyicisinin adresinin depolandığı konum.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde E_ILLEGAL_METHOD_CALL.

AsyncBase::OnCancel

Türetilmiş bir sınıfta geçersiz kılındığında, zaman uyumsuz bir işlemi iptal eder.

virtual void OnCancel(
   void
) = 0;

AsyncBase::OnClose

Türetilmiş bir sınıfta geçersiz kılındığında, zaman uyumsuz işlemi kapatır.

virtual void OnClose(
   void
) = 0;

AsyncBase::OnStart

Türetilmiş bir sınıfta geçersiz kılındığında, zaman uyumsuz bir işlem başlatır.

virtual HRESULT OnStart(
   void
) = 0;

AsyncBase::p ut_Id

Zaman uyumsuz işlemin tutamacını ayarlar.

STDMETHOD(
   put_Id
)(const unsigned int id);

Parametreler

id
Sıfır olmayan bir tanıtıcı.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde, E_INVALIDARG veya E_ILLEGAL_METHOD_CALL.

AsyncBase::P utOnComplete

Tamamlanma olay işleyicisinin adresini belirtilen değere ayarlar.

STDMETHOD(
   PutOnComplete
)(TComplete* completeHandler);

Parametreler

completeHandler
Tamamlanma olay işleyicisinin ayarlandığı adres.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde E_ILLEGAL_METHOD_CALL.

AsyncBase::P utOnProgress

İlerleme olayı işleyicisinin adresini belirtilen değere ayarlar.

STDMETHOD(
   PutOnProgress
)(TProgress* progressHandler);

Parametreler

progressHandler
İlerleme olayı işleyicisinin ayarlandığı adres.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde E_ILLEGAL_METHOD_CALL.

AsyncBase::Start

Zaman uyumsuz işlemi başlatır.

STDMETHOD(
   Start
)(void);

Dönüş Değeri

İşlemin başlatılıp başlatılmadiğini S_OK; aksi takdirde E_ILLEGAL_STATE_CHANGE.

Açıklamalar

Start() , çağırana geri dönmeden önce zaman uyumsuz işlemler "sık başlatma" olduğundan dışarıdan görünmeyen korumalı bir yöntemdir.

AsyncBase::TryTransitionToCompleted

Geçerli zaman uyumsuz işlemin tamamlanıp tamamlanmadığını gösterir.

bool TryTransitionToCompleted(
   void
);

Dönüş Değeri

true zaman uyumsuz işlem tamamlandıysa; aksi takdirde , false.

AsyncBase::TryTransitionToError

Belirtilen hata kodunun iç hata durumunu değiştirip değiştiremeyeceğini gösterir.

bool TryTransitionToError(
   const HRESULT error
);

Parametreler

hata
HRESULT hatası.

Dönüş Değeri

true iç hata durumu değiştirildiyse; aksi takdirde , false.

Açıklamalar

Bu işlem yalnızca hata durumu zaten S_OK olarak ayarlanmışsa hata durumunu değiştirir. Hata durumu zaten hataysa, iptal edildiyse, tamamlandıysa veya kapatıldıysa bu işlemin hiçbir etkisi olmaz.