ICLRTask::Reset — Metoda
Informuje środowisko uruchomieniowe języka wspólnego (CLR), że host ukończył zadanie, i umożliwia clR ponowne użycie bieżącego wystąpienia ICLRTask do reprezentowania innego zadania.
Składnia
HRESULT Reset (
[in] BOOL fFull
);
Parametry
fFull
[in] true
, jeśli środowisko uruchomieniowe powinno zresetować wszystkie wartości statyczne związane z wątkiem oprócz informacji o zabezpieczeniach i ustawieniach regionalnych związanych z bieżącym ICLRTask
wystąpieniem; w przeciwnym razie false
.
Jeśli wartość to true
, środowisko uruchomieniowe resetuje dane przechowywane przy użyciu polecenia AllocateDataSlot lub AllocateNamedDataSlot.
Wartość zwracana
HRESULT | Opis |
---|---|
S_OK | Reset zwrócone pomyślnie. |
HOST_E_CLRNOTAVAILABLE | ClR nie został załadowany do procesu lub CLR jest w stanie, w którym nie może uruchomić zarządzanego kodu lub przetworzyć wywołania. Pomyślnie |
HOST_E_TIMEOUT | Upłynął limit czasu wywołania. |
HOST_E_NOT_OWNER | Obiekt wywołujący nie jest właścicielem blokady. |
HOST_E_ABANDONED | Zdarzenie zostało anulowane, gdy zablokowany wątek lub światłowod czekał na nie. |
E_FAIL | Wystąpił nieznany katastrofalny błąd. Gdy metoda zwraca E_FAIL, clR nie będzie już można jej używać w ramach tego procesu. Kolejne wywołania metod hostingu zwracają HOST_E_CLRNOTAVAILABLE. |
Uwagi
Środowisko CLR może przetwarzać wcześniej utworzone ICLRTask
wystąpienia, aby uniknąć konieczności wielokrotnego tworzenia nowych wystąpień przy każdym potrzebie nowego zadania. Host włącza tę funkcję, wywołując ICLRTask::Reset
funkcję zamiast ICLRTask::ExitTask po ukończeniu zadania. Poniższa lista zawiera podsumowanie normalnego ICLRTask
cyklu życia wystąpienia:
Środowisko uruchomieniowe tworzy nowe
ICLRTask
wystąpienie.Środowisko uruchomieniowe wywołuje metodę IHostTaskManager::GetCurrentTask , aby uzyskać odwołanie do bieżącego zadania hosta.
Środowisko uruchomieniowe wywołuje metodę IHostTask::SetCLRTask , aby skojarzyć nowe wystąpienie z zadaniem hosta.
Zadanie jest wykonywane i wykonywane.
Host niszczy zadanie przez wywołanie metody
ICLRTask::ExitTask
.
Reset
zmienia ten scenariusz na dwa sposoby. W kroku 5 powyżej host wywołuje wywołanie Reset
w celu zresetowania zadania do stanu czystego, a następnie oddzielenie ICLRTask
wystąpienia od skojarzonego wystąpienia IHostTask . W razie potrzeby host może również buforować wystąpienie do ponownego IHostTask
użycia. W kroku 1 powyżej środowisko uruchomieniowe pobiera z ICLRTask
pamięci podręcznej zamiast tworzyć nowe wystąpienie.
Takie podejście działa dobrze, gdy host ma również pulę zadań roboczych wielokrotnego użytku. Gdy host niszczy jedno z jego IHostTask
wystąpień, niszczy odpowiedni element ICLRTask
, wywołując metodę ExitTask
.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: MSCorEE.h
Biblioteki: Uwzględnione jako zasób w MSCorEE.dll
wersje .NET Framework: dostępne od wersji 2.0