Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
Runtime membuat instans baru
ICLRTask.Runtime memanggil IHostTaskManager::GetCurrentTask untuk mendapatkan referensi ke tugas host saat ini.
Runtime memanggil IHostTask::SetCLRTask untuk mengaitkan instans baru dengan tugas host.
Tugas dijalankan dan selesai.
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