Aracılığıyla paylaş


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 Description
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 Çağıranın kilidi yoktur.
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, yeni bir 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 öğesini çağırır.

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

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

  5. Konak, çağrısı ICLRTask::ExitTaskyaparak görevi yok eder.

Reset bu senaryo iki şekilde değiştirilir. Yukarıdaki 5. adımda konak, görevi temiz bir duruma sıfırlamak için çağrı Reset yapar ve ardından örneği ilişkili IHostTask örneğinden ayrıştırmaktadı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.

Konağın yeniden kullanılabilir çalışan görevleri havuzu olduğunda da bu yaklaşım iyi çalışır. Konak örneklerinden IHostTask birini yok ettiğinde, çağırarak ExitTaskilgili ICLRTask öğesini yok eder.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: MSCorEE.h

Kitaplığı: MSCorEE.dll'da kaynak olarak dahil edilen

.NET Framework Sürümleri: 2.0 sürümünden itibaren kullanılabilir

Ayrıca bkz.