Metode ICLRTask::Reset

Menginformasikan runtime bahasa umum (CLR) bahwa host telah menyelesaikan tugas, dan memungkinkan CLR untuk menggunakan kembali instans ICLRTask saat ini untuk mewakili tugas lain.

Sintaksis

HRESULT Reset (
    [in] BOOL fFull
);

Parameter-parameternya

fFull [in] true, jika runtime harus mengatur ulang semua nilai statis terkait utas selain informasi keamanan dan lokal yang terkait dengan instans saat ini ICLRTask ; jika tidak, false.

Jika nilainya adalah true, runtime mengatur ulang data yang disimpan menggunakan AllocateDataSlot atau AllocateNamedDataSlot.

Mengembalikan Nilai

HRESULT Deskripsi
S_OK Reset berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE CLR belum dimuat ke dalam proses, atau CLR berada dalam keadaan di mana CLR tidak dapat menjalankan kode terkelola atau memproses panggilan. Berhasil
HOST_E_TIMEOUT Waktu panggilan habis.
HOST_E_NOT_OWNER Pemanggil tidak memiliki kunci.
HOST_E_ABANDONED Peristiwa dibatalkan saat utas atau serat yang diblokir sedang menunggu di atasnya.
E_FAIL Kegagalan bencana yang tidak diketahui terjadi. Ketika metode mengembalikan E_FAIL, CLR tidak lagi dapat digunakan dalam proses. Panggilan berikutnya ke metode hosting mengembalikan HOST_E_CLRNOTAVAILABLE.

Komentar

CLR dapat mendaur ulang instans yang dibuat ICLRTask sebelumnya untuk menghindari overhead berulang kali membuat instans baru setiap kali membutuhkan tugas baru. Host mengaktifkan fitur ini dengan memanggil ICLRTask::Reset alih-alih ICLRTask::ExitTask ketika telah menyelesaikan tugas. Daftar berikut ini merangkum siklus ICLRTask hidup normal instans:

  1. Runtime membuat instans baru ICLRTask .

  2. Runtime memanggil IHostTaskManager::GetCurrentTask untuk mendapatkan referensi ke tugas host saat ini.

  3. Runtime memanggil IHostTask::SetCLRTask untuk mengaitkan instans baru dengan tugas host.

  4. Tugas dijalankan dan selesai.

  5. Host menghancurkan tugas dengan memanggil ICLRTask::ExitTask.

Reset mengubah skenario ini dengan dua cara. Pada langkah 5 di atas, host memanggil Reset untuk mengatur ulang tugas ke status bersih, lalu memisahkan ICLRTaskinstans dari instans IHostTask terkait. Jika diinginkan, host juga dapat menyimpan instans IHostTask untuk digunakan kembali. Pada langkah 1 di atas, runtime menarik daur ulang ICLRTask dari cache alih-alih membuat instans baru.

Pendekatan ini berfungsi dengan baik ketika host juga memiliki kumpulan tugas pekerja yang dapat digunakan kembali. Ketika host menghancurkan salah satu instansnya IHostTask , host menghancurkan yang sesuai ICLRTask dengan memanggil ExitTask.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MSCorEE.h

Perpustakaan: Disertakan sebagai sumber daya dalam MSCorEE.dll

Versi .NET Framework: Tersedia sejak 2.0

Baca juga