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::Cancel
ve 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::Close
ve 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 , false
bu 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
ProgressTraits
ArgTraitsHelper 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.