IResourceManager Yapısı
Eşzamanlılık Çalışma Zamanı'nın Resource Manager arabirimi. Bu, zamanlayıcıların Resource Manager ile iletişim kurdığı arabirimdir.
Sözdizimi
struct IResourceManager;
Üyeler
Genel Sabit Listeleri
Veri Akışı Adı | Açıklama |
---|---|
IResourceManager::OSVersion | İşletim sistemi sürümünü temsil eden numaralandırılmış tür. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
IResourceManager::CreateNodeTopology | Yalnızca çalışma zamanının hata ayıklama derlemelerinde mevcut olan bu yöntem, Resource Manager'ın yapılandırmayla eşleşen gerçek donanım gerektirmeden değişen donanım topolojileri üzerinde testini kolaylaştırmak için tasarlanmış bir test kancasıdır. Çalışma zamanının perakende derlemeleriyle bu yöntem herhangi bir eylem gerçekleştirmeden döndürülecektir. |
IResourceManager::GetAvailableNodeCount | Resource Manager'ın kullanabileceği düğüm sayısını döndürür. |
IResourceManager::GetFirstNode | Resource Manager tarafından tanımlanan numaralandırma sırasına göre ilk düğümü döndürür. |
IResourceManager::Reference | Resource Manager örneğindeki başvuru sayısını artırır. |
IResourceManager::RegisterScheduler | Resource Manager'a bir zamanlayıcı kaydeder. Zamanlayıcı kaydedildikten sonra döndürülen arabirimi kullanarak ISchedulerProxy Resource Manager ile iletişim kurmalıdır. |
IResourceManager::Release | Resource Manager örneğindeki başvuru sayısını azaltma. Kaynak Yöneticisi, başvuru sayısı öğesine gittiğinde 0 yok edilir. |
Açıklamalar
Tek bir Resource Manager örneğine arabirim elde etmek için CreateResourceManager işlevini kullanın. yöntemi Resource Manager'da bir başvuru sayısını artırır ve Resource Manager ile işiniz bittiğinde başvuruyu serbest bırakmak için IResourceManager::Release yöntemini çağırmanız gerekir. Genellikle, oluşturduğunuz her zamanlayıcı oluşturma sırasında bu yöntemi çağırır ve resource manager kapatıldıktan sonra başvuruyu serbest bırakır.
Devralma Hiyerarşisi
IResourceManager
Gereksinimler
Üst bilgi: concrtrm.h
Ad alanı: eşzamanlılık
IResourceManager::CreateNodeTopology Yöntemi
Yalnızca çalışma zamanının hata ayıklama derlemelerinde mevcut olan bu yöntem, Resource Manager'ın yapılandırmayla eşleşen gerçek donanım gerektirmeden değişen donanım topolojileri üzerinde testini kolaylaştırmak için tasarlanmış bir test kancasıdır. Çalışma zamanının perakende derlemeleriyle bu yöntem herhangi bir eylem gerçekleştirmeden döndürülecektir.
virtual void CreateNodeTopology(
unsigned int nodeCount,
_In_reads_(nodeCount) unsigned int* pCoreCount,
_In_reads_opt_(nodeCount) unsigned int** pNodeDistance,
_In_reads_(nodeCount) unsigned int* pProcessorGroups) = 0;
Parametreler
nodeCount
Simülasyonu yapılan işlemci düğümlerinin sayısı.
pCoreCount
Her düğümdeki çekirdek sayısını belirten bir dizi.
pNodeDistance
İki düğüm arasındaki düğüm uzaklığı belirten matris. Bu parametre değerine NULL
sahip olabilir.
pProcessorGroups
Her düğümün ait olduğu işlemci grubunu belirten bir dizi.
Açıklamalar
invalid_argument, parametrenin nodeCount
değeri 0
geçirildiyse veya parametresinde pCoreCount
değeri NULL
varsa oluşturulur.
invalid_operation, işlemde başka zamanlayıcılar varken bu yöntem çağrılırsa oluşturulur.
IResourceManager::GetAvailableNodeCount Yöntemi
Resource Manager'ın kullanabileceği düğüm sayısını döndürür.
virtual unsigned int GetAvailableNodeCount() const = 0;
Dönüş Değeri
Resource Manager'ın kullanabileceği düğüm sayısı.
IResourceManager::GetFirstNode Yöntemi
Resource Manager tarafından tanımlanan numaralandırma sırasına göre ilk düğümü döndürür.
virtual ITopologyNode* GetFirstNode() const = 0;
Dönüş Değeri
Resource Manager tarafından tanımlanan numaralandırma sırasına göre ilk düğüm.
IResourceManager::OSVersion Numaralandırması
İşletim sistemi sürümünü temsil eden numaralandırılmış tür.
enum OSVersion;
IResourceManager::Reference Yöntemi
Resource Manager örneğindeki başvuru sayısını artırır.
virtual unsigned int Reference() = 0;
Dönüş Değeri
Elde edilen başvuru sayısı.
IResourceManager::RegisterScheduler Yöntemi
Resource Manager'a bir zamanlayıcı kaydeder. Zamanlayıcı kaydedildikten sonra döndürülen arabirimi kullanarak ISchedulerProxy
Resource Manager ile iletişim kurmalıdır.
virtual ISchedulerProxy *RegisterScheduler(
_Inout_ IScheduler* pScheduler,
unsigned int version) = 0;
Parametreler
pScheduler
IScheduler
Kaydedilecek zamanlayıcı arabirimi.
version
Zamanlayıcının Resource Manager ile iletişim kurmak için kullandığı iletişim arabiriminin sürümü. Sürüm kullanmak, Resource Manager'ın iletişim arabirimini geliştirmesine ve zamanlayıcıların eski özelliklere erişim elde etmesine olanak tanır. Visual Studio 2010'da bulunan Resource Manager özelliklerini kullanmak isteyen zamanlayıcılar sürümünü CONCRT_RM_VERSION_1
kullanmalıdır.
Dönüş Değeri
Resource Manager'ın ISchedulerProxy
zamanlayıcınızla ilişkilendirdiği arabirim. Zamanlayıcınız bu noktadan sonra Resource Manager ile iletişim kurmak için bu arabirimi kullanmalıdır.
Açıklamalar
Resource Manager ile iletişim başlatmak için bu yöntemi kullanın. yöntemi zamanlayıcınızın arabirimini bir ISchedulerProxy
arabirimle ilişkilendirir IScheduler
ve size geri gönderir. Zamanlayıcınız tarafından kullanılmak üzere yürütme kaynakları istemek veya Resource Manager ile iş parçacıklarına abone olmak için döndürülen arabirimi kullanabilirsiniz. Resource Manager, zamanlayıcının çalışmayı yürütmek için ne tür iş parçacıklarına ihtiyaç duyacağını belirlemek için IScheduler::GetPolicy yöntemi tarafından döndürülen zamanlayıcı ilkesindeki ilke öğelerini kullanır. İlke anahtarınızın SchedulerKind
değeri UmsThreadDefault
varsa ve değer ilkenin değeri UmsThreadDefault
olarak yeniden okunursa, IScheduler
yöntemine geçirilen arabirim bir IUMSScheduler
arabirim olmalıdır.
yöntemi, parametrenin değeri NULL
varsa veya parametre pScheduler
iletişim arabirimi için geçerli bir sürüm değilse version
bir invalid_argument
özel durum oluşturur.
IResourceManager::Release Yöntemi
Resource Manager örneğindeki başvuru sayısını azaltma. Kaynak Yöneticisi, başvuru sayısı öğesine gittiğinde 0
yok edilir.
virtual unsigned int Release() = 0;
Dönüş Değeri
Elde edilen başvuru sayısı.
Ayrıca bkz.
Eşzamanlılık Ad Alanı
ISchedulerProxy Yapısı
IScheduler Yapısı