Bagikan melalui


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.