ICLRTask::Reset Yöntemi

Ortak dil çalışma zamanına (CLR) konağın bir görevi tamamladığını bildirir ve CLR'nin başka bir görevi temsil etmek için geçerli ICLRTask örneğini yeniden kullanmasını sağlar.

Sözdizimi

HRESULT Reset (
    [in] BOOL fFull
);

Parametreler

fFull [in] true, çalışma zamanının geçerli ICLRTask örnekle ilgili güvenlik ve yerel ayar bilgilerine ek olarak iş parçacığıyla ilgili tüm statik değerleri sıfırlaması gerekiyorsa; aksi takdirde, false.

değer isetrue, çalışma zamanı veya AllocateNamedDataSlotkullanılarak AllocateDataSlot depolanan verileri sıfırlar.

Dönüş Değeri

HRESULT Açıklama
S_OK Reset başarıyla döndürüldü.
HOST_E_CLRNOTAVAILABLE CLR bir işleme yüklenmedi veya CLR yönetilen kodu çalıştıramadığı veya çağrıyı işleyemediği bir durumda. Başarı -yla
HOST_E_TIMEOUT Arama zaman aşımına uğradı.
HOST_E_NOT_OWNER Arayan, kilidin sahibi değil.
HOST_E_ABANDONED Engellenen bir iş parçacığı veya fiber beklerken bir olay iptal edildi.
E_FAIL Bilinmeyen bir yıkıcı hata oluştu. Bir yöntem E_FAIL döndürdüğünde, CLR artık işlem içinde kullanılamaz. Barındırma yöntemlerine yapılan sonraki çağrılar HOST_E_CLRNOTAVAILABLE döndürür.

Açıklamalar

CLR, her yeni göreve ihtiyaç duyduğunda tekrar tekrar yeni örnekler oluşturma yükünü önlemek için daha önce oluşturulmuş ICLRTask örnekleri geri dönüştürebilir. Konak, bir görevi tamamladığında ICLRTask::ExitTask yerine çağırarak ICLRTask::Reset bu özelliği etkinleştirir. Aşağıdaki liste, örneğin ICLRTask normal yaşam döngüsünü özetler:

  1. Çalışma zamanı yeni ICLRTask bir örnek oluşturur.

  2. Çalışma zamanı, geçerli konak görevine başvuru almak için IHostTaskManager::GetCurrentTask'ı çağırır.

  3. Çalışma zamanı, yeni örneği konak göreviyle ilişkilendirmek için IHostTask::SetCLRTask'ı çağırır.

  4. Görev yürütülür ve tamamlar.

  5. Konak, çağırarak ICLRTask::ExitTaskgörevi yok eder.

Reset bu senaryo iki şekilde değiştirir. Yukarıdaki 5. adımda, konak görevi temiz bir duruma sıfırlamak için çağırır Reset ve ardından örneği ilişkili IHostTask örneğinden ayrıştırırICLRTask. İsterseniz, konak örneği yeniden kullanmak üzere önbelleğe IHostTask alabilir. Yukarıdaki 1. adımda çalışma zamanı, yeni bir örnek oluşturmak yerine önbellekten geri dönüştürülmüş ICLRTask bir örnek çeker.

Bu yaklaşım, konağın yeniden kullanılabilir çalışan görevlerinden oluşan bir havuzu olduğunda da iyi çalışır. Konak örneklerinden IHostTask birini yok ettiğinde, çağırarak ExitTaskkarşılık geleni ICLRTask yok eder.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: MSCorEE.h

Kütüphane: MSCorEE.dll'da kaynak olarak dahil

.NET Framework Sürümleri: 2.0'dan itibaren kullanılabilir

Ayrıca bakınız