Aracılığıyla paylaş


ICorProfilerInfo13::CreateHandle yöntemi

Belirtilen nesneyi sarmalayan bir tanıtıcı oluşturur.

Sözdizimi

    HRESULT CreateHandle(
                [in] ObjectID            object,
                [in] COR_PRF_HANDLE_TYPE type,
                [out] ObjectHandleID*    pHandle);

Parametreler

object
[in] Bir tanıtıcı ile sarmalama için nesne başvurusu.

type
[in] Oluşturulacak tanıtıcı türü.

pHandle
[out] Belirtilen objectöğesini kaydırmak için oluşturulan tanıtıcıyı işaret edecek, çağıran tarafından sağlanan bir işaretçi.

Açıklamalar

Belirtilen COR_PRF_HANDLE_TYPE değere bağlı olarak beklenen kullanımlar şunlardır:

  • COR_PRF_HANDLE_TYPE_WEAK: Bir nesnenin zaman içinde bellekte kalıp kalmadiğini izler. Sarmalanan nesne toplanmışsa, ICorProfilerInfo13::GetObjectIDFromHandle null ObjectIDdöndürür.
  • COR_PRF_HANDLE_TYPE_STRONG: Başka hiçbir nesne başvuruda bulunmasa bile bir nesnenin çöp toplamalardan kurtulması için zorlar.
  • COR_PRF_HANDLE_TYPE_PINNED: Güçlü bir tanıtıcıyla aynı ama aynı zamanda atık toplama sırasında nesnenin bellekte aynı adreste kalmasını sağlar.

Başvurunun object geçerli olduğundan emin olmak için bu yöntemin ICorProfilerCallback::ObjectAllocated gibi bir ICorProfilerCallback yöntemden çağrılması gerekir. EventPipe zaman uyumsuz dinleyicisinden çağrı CreateHandle yapamazsınız. Olay yükü aracılığıyla alınan nesne, olayın yayıldığı zaman ile alındığı zaman arasında bir çöp toplama işlemi gerçekleştiğinde atılmış veya bellekte taşınmış olabilir.

Oluşturulan tanıtıcı artık gerekli olmadığında ICorProfilerInfo13::D estroyHandle'ı çağırmayı unutmayın. Çöp toplayıcının performansını etkilememek için 4096'dan az tanıtıcının aynı anda ayrılması önerilir.

Gereksinimler

Platformlar: Bkz. .NET tarafından desteklenen işletim sistemleri.

Üst bilgi: CorProf.idl, CorProf.h

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

Ayrıca bkz.