Bagikan melalui


Metode ICLRTask::Reset

Memberi tahu runtime bahasa umum bahwa host telah menyelesaikan tugas, dan memungkinkan runtime bahasa umum untuk menggunakan kembali instans ICLRTask saat ini untuk mewakili tugas lain.

Sintaks

HRESULT Reset (  
    [in] BOOL fFull  
);  

Parameter

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

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

Tampilkan Nilai

HRESULT Deskripsi
S_OK Reset berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE Runtime bahasa umum belum dimuat ke dalam proses, atau runtime bahasa umum dalam keadaan di mana ia 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 rangkaian atau fiber yang diblokir sedang menunggunya.
E_FAIL Kegagalan katastrofe yang tidak diketahui terjadi. Saat metode menampilkan E_FAIL, CLR tidak lagi dapat digunakan dalam proses. Panggilan berikutnya ke metode hosting menampilkan HOST_E_CLRNOTAVAILABLE.

Keterangan

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

  1. Runtime membuat instans ICLRTask baru.

  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 diselesaikan.

  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 instans ICLRTask dari instans IHostTask terkait. Jika diinginkan, host juga dapat menyimpan instans IHostTask untuk digunakan kembali. Pada langkah 1 di atas, runtime menarik ICLRTask daur ulang dari cache alih-alih membuat instans baru.

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

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MSCorEE.h

Pustaka: Disertakan sebagai sumber daya di MSCorEE.dll

Versi .NET Framework: Tersedia mulai dari 2.0

Lihat juga