Kelas AsyncBase
Mengimplementasikan komputer status asinkron Windows Runtime.
Sintaks
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
TComplete
Penanganan aktivitas yang dipanggil ketika operasi asinkron selesai.
TProgress
Penanganan aktivitas yang dipanggil saat operasi asinkron yang sedang berjalan melaporkan kemajuan operasi saat ini.
resultType
Salah satu nilai enumerasi AsyncResultType . Secara default, SingleResult
.
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
AsyncBase::AsyncBase | Menginisialisasi instans AsyncBase kelas. |
Metode Publik
Nama | Deskripsi |
---|---|
AsyncBase::Cancel | Membatalkan operasi asinkron. |
AsyncBase::Close | Menutup operasi asinkron. |
AsyncBase::FireCompletion | Memanggil penanganan aktivitas penyelesaian, atau mengatur ulang delegasi kemajuan internal. |
AsyncBase::FireProgress | Memanggil penanganan aktivitas kemajuan saat ini. |
AsyncBase::get_ErrorCode | Mengambil kode kesalahan untuk operasi asinkron saat ini. |
AsyncBase::get_Id | Mengambil handel operasi asinkron. |
AsyncBase::get_Status | Mengambil nilai yang menunjukkan status operasi asinkron. |
AsyncBase::GetOnComplete | Menyalin alamat penanganan aktivitas penyelesaian saat ini ke variabel yang ditentukan. |
AsyncBase::GetOnProgress | Menyalin alamat penanganan aktivitas kemajuan saat ini ke variabel yang ditentukan. |
AsyncBase::p ut_Id | Mengatur handel operasi asinkron. |
AsyncBase::P utOnComplete | Mengatur alamat penanganan aktivitas penyelesaian ke nilai yang ditentukan. |
AsyncBase::P utOnProgress | Mengatur alamat penanganan aktivitas kemajuan ke nilai yang ditentukan. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
AsyncBase::CheckValidStateForDelegateCall | Menguji apakah properti delegasi dapat dimodifikasi dalam status asinkron saat ini. |
AsyncBase::CheckValidStateForResultsCall | Menguji apakah hasil operasi asinkron dapat dikumpulkan dalam status asinkron saat ini. |
AsyncBase::ContinueAsyncOperation | Menentukan apakah operasi asinkron harus melanjutkan pemrosesan atau harus dihentikan. |
AsyncBase::CurrentStatus | Mengambil status operasi asinkron saat ini. |
AsyncBase::ErrorCode | Mengambil kode kesalahan untuk operasi asinkron saat ini. |
AsyncBase::OnCancel | Ketika ditimpa di kelas turunan, membatalkan operasi asinkron. |
AsyncBase::OnClose | Ketika ditimpa di kelas turunan, menutup operasi asinkron. |
AsyncBase::OnStart | Ketika ditimpa di kelas turunan, memulai operasi asinkron. |
AsyncBase::Start | Memulai operasi asinkron. |
AsyncBase::TryTransitionToCompleted | Menunjukkan apakah operasi asinkron saat ini telah selesai. |
AsyncBase::TryTransitionToError | Menunjukkan apakah kode kesalahan yang ditentukan dapat mengubah status kesalahan internal. |
Hierarki Warisan
AsyncBase
AsyncBase
Persyaratan
Header: async.h
Namespace: Microsoft::WRL
AsyncBase::AsyncBase
Menginisialisasi instans AsyncBase
kelas.
AsyncBase();
AsyncBase::Cancel
Membatalkan operasi asinkron.
STDMETHOD(
Cancel
)(void);
Tampilkan Nilai
Secara default, selalu mengembalikan S_OK.
Keterangan
Cancel()
adalah implementasi default dari IAsyncInfo::Cancel
, dan tidak melakukan pekerjaan aktual. Untuk benar-benar membatalkan operasi asinkron, ambil alih OnCancel()
metode virtual murni.
AsyncBase::CheckValidStateForDelegateCall
Menguji apakah properti delegasi dapat dimodifikasi dalam status asinkron saat ini.
inline HRESULT CheckValidStateForDelegateCall();
Tampilkan Nilai
S_OK jika properti delegasi dapat dimodifikasi; jika tidak, E_ILLEGAL_METHOD_CALL.
AsyncBase::CheckValidStateForResultsCall
Menguji apakah hasil operasi asinkron dapat dikumpulkan dalam status asinkron saat ini.
inline HRESULT CheckValidStateForResultsCall();
Tampilkan Nilai
S_OK apakah hasil dapat dikumpulkan; jika tidak, E_ILLEGAL_METHOD_CALLE_ILLEGAL_METHOD_CALL.
AsyncBase::Close
Menutup operasi asinkron.
STDMETHOD(
Close
)(void) override;
Tampilkan Nilai
S_OK jika operasi ditutup atau sudah ditutup; jika tidak, E_ILLEGAL_STATE_CHANGE.
Keterangan
Close()
adalah implementasi default dari IAsyncInfo::Close
, dan tidak melakukan pekerjaan aktual. Untuk benar-benar menutup operasi asinkron, ambil alih OnClose()
metode virtual murni.
AsyncBase::ContinueAsyncOperation
Menentukan apakah operasi asinkron harus melanjutkan pemrosesan atau harus dihentikan.
inline bool ContinueAsyncOperation();
Tampilkan Nilai
true
jika status operasi asinkron saat ini dimulai, yang berarti operasi harus dilanjutkan. Jika tidak, false
, yang berarti operasi harus dihentikan.
AsyncBase::CurrentStatus
Mengambil status operasi asinkron saat ini.
inline void CurrentStatus(
Details::AsyncStatusInternal *status
);
Parameter
status
Lokasi tempat operasi ini menyimpan status saat ini.
Keterangan
Operasi ini aman untuk utas.
AsyncBase::ErrorCode
Mengambil kode kesalahan untuk operasi asinkron saat ini.
inline void ErrorCode(
HRESULT *error
);
Parameter
kesalahan
Lokasi tempat operasi ini menyimpan kode kesalahan saat ini.
Keterangan
Operasi ini aman untuk utas.
AsyncBase::FireCompletion
Memanggil penanganan aktivitas penyelesaian, atau mengatur ulang delegasi kemajuan internal.
void FireCompletion(
void
) override;
virtual void FireCompletion();
Keterangan
Versi FireCompletion()
pertama mereset variabel delegasi kemajuan internal. Versi kedua memanggil penanganan aktivitas penyelesaian jika operasi asinkron selesai.
AsyncBase::FireProgress
Memanggil penanganan aktivitas kemajuan saat ini.
void FireProgress(
const typename ProgressTraits::Arg2Type arg
);
Parameter
Arg
Metode penanganan aktivitas yang akan dipanggil.
Keterangan
ProgressTraits
berasal dari ArgTraitsHelper Structure.
AsyncBase::get_ErrorCode
Mengambil kode kesalahan untuk operasi asinkron saat ini.
STDMETHOD(
get_ErrorCode
)(HRESULT* errorCode) override;
Parameter
errorCode
Lokasi tempat kode kesalahan saat ini disimpan.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_ILLEGAL_METHOD_CALL jika operasi asinkron saat ini ditutup.
AsyncBase::get_Id
Mengambil handel operasi asinkron.
STDMETHOD(
get_Id
)(unsigned int *id) override;
Parameter
id
Lokasi tempat handel akan disimpan.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_ILLEGAL_METHOD_CALL.
Keterangan
Metode ini mengimplementasikan IAsyncInfo::get_Id
.
AsyncBase::get_Status
Mengambil nilai yang menunjukkan status operasi asinkron.
STDMETHOD(
get_Status
)(AsyncStatus *status) override;
Parameter
status
Lokasi tempat status akan disimpan. Untuk informasi selengkapnya, lihat Windows::Foundation::AsyncStatus
enumerasi.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_ILLEGAL_METHOD_CALL.
Keterangan
Metode ini mengimplementasikan IAsyncInfo::get_Status
.
AsyncBase::GetOnComplete
Menyalin alamat penanganan aktivitas penyelesaian saat ini ke variabel yang ditentukan.
STDMETHOD(
GetOnComplete
)(TComplete** completeHandler);
Parameter
completeHandler
Lokasi tempat alamat penanganan aktivitas penyelesaian saat ini disimpan.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_ILLEGAL_METHOD_CALL.
AsyncBase::GetOnProgress
Menyalin alamat penanganan aktivitas kemajuan saat ini ke variabel yang ditentukan.
STDMETHOD(
GetOnProgress
)(TProgress** progressHandler);
Parameter
progressHandler
Lokasi tempat alamat penanganan aktivitas kemajuan saat ini disimpan.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_ILLEGAL_METHOD_CALL.
AsyncBase::OnCancel
Ketika ditimpa di kelas turunan, membatalkan operasi asinkron.
virtual void OnCancel(
void
) = 0;
AsyncBase::OnClose
Ketika ditimpa di kelas turunan, menutup operasi asinkron.
virtual void OnClose(
void
) = 0;
AsyncBase::OnStart
Ketika ditimpa di kelas turunan, memulai operasi asinkron.
virtual HRESULT OnStart(
void
) = 0;
AsyncBase::p ut_Id
Mengatur handel operasi asinkron.
STDMETHOD(
put_Id
)(const unsigned int id);
Parameter
id
Handel nonzero.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_INVALIDARG atau E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnComplete
Mengatur alamat penanganan aktivitas penyelesaian ke nilai yang ditentukan.
STDMETHOD(
PutOnComplete
)(TComplete* completeHandler);
Parameter
completeHandler
Alamat tempat penanganan aktivitas penyelesaian diatur.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_ILLEGAL_METHOD_CALL.
AsyncBase::P utOnProgress
Mengatur alamat penanganan aktivitas kemajuan ke nilai yang ditentukan.
STDMETHOD(
PutOnProgress
)(TProgress* progressHandler);
Parameter
progressHandler
Alamat tempat penanganan aktivitas kemajuan diatur.
Tampilkan Nilai
S_OK jika berhasil; jika tidak, E_ILLEGAL_METHOD_CALL.
AsyncBase::Start
Memulai operasi asinkron.
STDMETHOD(
Start
)(void);
Tampilkan Nilai
S_OK jika operasi dimulai atau sudah dimulai; jika tidak, E_ILLEGAL_STATE_CHANGE.
Keterangan
Start()
adalah metode yang dilindungi yang tidak terlihat secara eksternal karena operasi asinkron "hot start" sebelum kembali ke pemanggil.
AsyncBase::TryTransitionToCompleted
Menunjukkan apakah operasi asinkron saat ini telah selesai.
bool TryTransitionToCompleted(
void
);
Tampilkan Nilai
true
jika operasi asinkron telah selesai; jika tidak, false
.
AsyncBase::TryTransitionToError
Menunjukkan apakah kode kesalahan yang ditentukan dapat mengubah status kesalahan internal.
bool TryTransitionToError(
const HRESULT error
);
Parameter
kesalahan
Kesalahan HRESULT.
Tampilkan Nilai
true
jika status kesalahan internal diubah; jika tidak, false
.
Keterangan
Operasi ini memodifikasi status kesalahan hanya jika status kesalahan sudah diatur ke S_OK. Operasi ini tidak berpengaruh jika status kesalahan sudah kesalahan, dibatalkan, selesai, atau ditutup.