Udostępnij za pośrednictwem


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:

  1. Środowisko uruchomieniowe tworzy nowe ICLRTask wystąpienie.

  2. Środowisko uruchomieniowe wywołuje metodę IHostTaskManager::GetCurrentTask , aby uzyskać odwołanie do bieżącego zadania hosta.

  3. Środowisko uruchomieniowe wywołuje metodę IHostTask::SetCLRTask , aby skojarzyć nowe wystąpienie z zadaniem hosta.

  4. Zadanie jest wykonywane i wykonywane.

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

Zobacz też