Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hem doğrudan üye alan başvuruları hem de bağımlılıklar aracılığıyla ConditionalWeakTable bu kökler tarafından başvuruda bulunılan nesnelerin geçişli kapanışını tanımlar.
Sözdizimi
HRESULT ConditionalWeakTableElementReferences(
[in] ULONG cRootRefs,
[in, size_is(cRootRefs)] ObjectID keyRefIds[],
[in, size_is(cRootRefs)] ObjectID valueRefIds[],
[in, size_is(cRootRefs)] GCHandleID rootIds[]
);
Parametreler
cRootRefs
[in] , valueRefIdsve rootIds dizilerindeki keyRefIdsöğelerin sayısı.
keyRefIds
[in] Her biri bağımlı tanıtıcı çiftindeki birincil öğe için öğesini içeren ObjectID nesne kimlikleri dizisi.
valueRefIds
[in] Her biri bağımlı tanıtıcı çiftindeki ikincil öğe için öğesini içeren ObjectID nesne kimlikleri dizisi. (keyRefIds[i] etkin tutar valueRefIds[i] .)
rootIds
[in] Çöp toplama kökü hakkında ek bilgiler içeren bir tamsayıya işaret eden değer dizisi GCHandleID .
ObjectID Atık toplayıcı nesneleri eski konumlardan yeni konumlara taşıma sürecinde olabileceğinden, yöntemi tarafından ConditionalWeakTableElementReferences döndürülen değerlerin hiçbiri geri çağırma sırasında geçerli değildir. Bu nedenle, profil oluşturucular bir ConditionalWeakTableElementReferences çağrı sırasında nesneleri incelemeye çalışmamalıdır. konumunda GarbageCollectionFinished, tüm nesneler yeni konumlarına taşındı ve inceleme yapılabilir.
Örnek
Aşağıdaki kod örneği , ICorProfilerCallback5 uygulamasını ve bu yöntemi kullanmayı gösterir.
HRESULT Callback5Impl::ConditionalWeakTableElementReferences(
ULONG cRootRefs,
ObjectID keyRefIds[],
ObjectID valueRefIds[],
GCHandleID rootIds[])
{
printf("Callback5Impl::ConditionalWeakTableElementReferences called\n");
for (unsigned int i = 0; i < cRootRefs; ++i)
{
// Save dependency to XML for later retrieval
PersistDependencyToXml(rootIds[i], keyRefIds[i], valueRefIds[i]);
// or store dependency to an internal map
m_cwt_deps->add_dep(rootIds[i], keyRefIds[i], valueRefIds[i]);
// or add arc to object graph
m_obj_graph->add_arc(keyRefIds[i], valueRefIds[i], rootIds[i]);
}
return S_OK;
}
Açıklamalar
.NET Framework 4.5 veya sonraki sürümleri için profil oluşturucu, ICorProfilerCallback5 arabirimini uygular ve yöntemi tarafından ConditionalWeakTableElementReferences belirtilen bağımlılıkları kaydeder.
ICorProfilerCallback5 , girdilerle temsil edilen ConditionalWeakTable canlı nesneler arasındaki bağımlılıkların tamamını sağlar. Bu bağımlılıklar ve ICorProfilerCallback::ObjectReferences yöntemi tarafından belirtilen üye alanı başvuruları, yönetilen profil oluşturucunun canlı nesnelerin tam nesne grafını oluşturmasını sağlar.
Gereksinimler
Platform: Bkz. Sistem Gereksinimleri.
Üstbilgi: CorProf.idl, CorProf.h
.NET Framework Sürümleri: 4.5 sürümünden itibaren kullanılabilir