CurrentScheduler Sınıfı
Çağıran bağlamla ilişkili geçerli zamanlayıcı için bir soyutlamayı temsil eder.
Sözdizimi
class CurrentScheduler;
Üyeler
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
Oluştur | Davranışı parametresi tarafından _Policy açıklanan yeni bir zamanlayıcı oluşturur ve bunu çağıran bağlama ekler. Yeni oluşturulan zamanlayıcı, arama bağlamı için geçerli zamanlayıcı olur. |
CreateScheduleGroup | Aşırı yüklendi. Çağıran bağlamla ilişkili zamanlayıcı içinde yeni bir zamanlama grubu oluşturur. parametresini _Placement alan sürüm, yeni oluşturulan zamanlama grubundaki görevlerin bu parametre tarafından belirtilen konumda yürütülmeye karşı taraflı olmasını sağlar. |
Detach | Geçerli zamanlayıcıyı arama bağlamından ayırır ve varsa, önceden eklenmiş zamanlayıcıyı geçerli zamanlayıcı olarak geri yükler. Bu yöntem döndürdükten sonra, çağrı bağlamı daha önce veya Scheduler::Attach yöntemi kullanılarak CurrentScheduler::Create bağlama eklenmiş zamanlayıcı tarafından yönetilir. |
Edinin | Geçerli zamanlayıcı olarak da adlandırılan, çağıran bağlamla ilişkilendirilmiş zamanlayıcıya bir işaretçi döndürür. |
GetNumberOfVirtualProcessors | Çağıran bağlamla ilişkilendirilmiş zamanlayıcı için geçerli sanal işlemci sayısını döndürür. |
GetPolicy | Geçerli zamanlayıcının oluşturulduğu ilkenin bir kopyasını döndürür. |
Kimlik | Geçerli zamanlayıcı için benzersiz bir tanımlayıcı döndürür. |
IsAvailableLocation | Belirli bir konumun geçerli zamanlayıcıda kullanılabilir olup olmadığını belirler. |
RegisterShutdownEvent | Geçerli bağlamla ilişkili zamanlayıcı kapandığında ve kendisini yok ettiğinde parametresinde _ShutdownEvent geçirilen Windows olay tanıtıcısının sinyal vermesine neden olur. Olay sinyallendiğinde zamanlayıcıya zamanlanmış olan tüm çalışmalar tamamlanır. Bu yöntemle birden çok kapatma olayı kaydedilebilir. |
ScheduleTask | Aşırı yüklendi. Çağıran bağlamla ilişkili zamanlayıcı içinde hafif bir görev zamanlar. Hafif görev, çalışma zamanı tarafından belirlenen bir zamanlama grubuna yerleştirilir. parametresini _Placement alan sürüm, görevin belirtilen konumda yürütülmeye yönelik sapmaya neden olur. |
Açıklamalar
Çağıran bağlamla ilişkilendirilmiş bir zamanlayıcı yoksa (bkz . Zamanlayıcı), sınıfındaki CurrentScheduler
birçok yöntem işlemin varsayılan zamanlayıcısının eklendiğine neden olur. Bu, işlemin varsayılan zamanlayıcısının böyle bir çağrı sırasında oluşturulduğunu da ifade edebilir.
Devralma Hiyerarşisi
CurrentScheduler
Gereksinimler
Üst bilgi: concrt.h
Ad alanı: eşzamanlılık
Oluşturma
Davranışı parametresi tarafından _Policy
açıklanan yeni bir zamanlayıcı oluşturur ve bunu çağıran bağlama ekler. Yeni oluşturulan zamanlayıcı, arama bağlamı için geçerli zamanlayıcı olur.
static void __cdecl Create(const SchedulerPolicy& _Policy);
Parametreler
_Politika
Yeni oluşturulan zamanlayıcının davranışını açıklayan zamanlayıcı ilkesi.
Açıklamalar
Zamanlayıcının çağrı bağlamının eki, zamanlayıcıya örtük olarak bir başvuru sayısı yerleştirir.
yöntemiyle Create
bir zamanlayıcı oluşturulduktan sonra, zamanlayıcının kapanmasına izin vermek için gelecekte bir noktada CurrentScheduler::D etach yöntemini çağırmanız gerekir.
Bu yöntem zaten farklı bir zamanlayıcıya eklenmiş bir bağlamdan çağrılırsa, var olan zamanlayıcı önceki zamanlayıcı olarak anımsanır ve yeni oluşturulan zamanlayıcı geçerli zamanlayıcı olur. Yöntemini daha sonraki bir noktada çağırdığınızda CurrentScheduler::Detach
, önceki zamanlayıcı geçerli zamanlayıcı olarak geri yüklenir.
Bu yöntem, scheduler_resource_allocation_error ve invalid_scheduler_policy_value gibi çeşitli özel durumlar oluşturabilir.
CreateScheduleGroup
Çağıran bağlamla ilişkili zamanlayıcı içinde yeni bir zamanlama grubu oluşturur. parametresini _Placement
alan sürüm, yeni oluşturulan zamanlama grubundaki görevlerin bu parametre tarafından belirtilen konumda yürütülmeye karşı taraflı olmasını sağlar.
static ScheduleGroup* __cdecl CreateScheduleGroup();
static ScheduleGroup* __cdecl CreateScheduleGroup(location& _Placement);
Parametreler
_Yerleştirme
Zamanlama grubundaki görevlerin yürütülmeye karşı taraflı olacağı bir konuma başvuru.
Dönüş Değeri
Yeni oluşturulan zamanlama grubuna bir işaretçi. Bu ScheduleGroup
nesnenin üzerine yerleştirilmiş bir ilk başvuru sayısı var.
Açıklamalar
Bu yöntem, şu anda çağrı bağlamıyla ilişkilendirilmiş bir zamanlayıcı yoksa, işlemin varsayılan zamanlayıcısının oluşturulmasına ve/veya çağrı bağlamlarına eklenmesine neden olur.
Üzerinde çalışmayı zamanlama işlemini tamamladığınızda Release yöntemini bir zamanlama grubunda çağırmanız gerekir. Zamanlayıcı, kuyruğa alınan tüm çalışmalar tamamlandığında zamanlama grubunu yok eder.
Bu zamanlayıcıyı açıkça oluşturduysanız, geçerli bağlamı ondan ayırarak, başvurunuzu zamanlayıcıda yayınlamadan önce içindeki grupları zamanlamak için tüm başvuruları serbest bırakmanız gerektiğini unutmayın.
Ayır
Geçerli zamanlayıcıyı arama bağlamından ayırır ve varsa, önceden eklenmiş zamanlayıcıyı geçerli zamanlayıcı olarak geri yükler. Bu yöntem döndürdükten sonra, çağrı bağlamı daha önce veya Scheduler::Attach
yöntemi kullanılarak CurrentScheduler::Create
bağlama eklenmiş zamanlayıcı tarafından yönetilir.
static void __cdecl Detach();
Açıklamalar
Detach
yöntemi, bir başvuru sayısını zamanlayıcıdan örtük olarak kaldırır.
Çağıran bağlama eklenmiş bir zamanlayıcı yoksa, bu yöntemin çağrılması bir scheduler_not_attached özel durum oluşturmasına neden olur.
Bu yöntemin bir zamanlayıcıya iç ve yönetilen bir bağlamdan veya Scheduler::Attach veya CurrentScheduler::Create yöntemleri dışında bir yöntem kullanılarak eklenen bir bağlamdan çağrılması, improper_scheduler_detach özel durumunun oluşturulmasına neden olur.
Al
Geçerli zamanlayıcı olarak da adlandırılan, çağıran bağlamla ilişkilendirilmiş zamanlayıcıya bir işaretçi döndürür.
static Scheduler* __cdecl Get();
Dönüş Değeri
Çağıran bağlamla (geçerli zamanlayıcı) ilişkili zamanlayıcı işaretçisi.
Açıklamalar
Bu yöntem, şu anda çağrı bağlamıyla ilişkilendirilmiş bir zamanlayıcı yoksa, işlemin varsayılan zamanlayıcısının oluşturulmasına ve/veya çağrı bağlamlarına eklenmesine neden olur. Bu yöntem tarafından döndürülen nesneye Scheduler
ek başvuru yerleştirilmemiştir.
GetNumberOfVirtualProcessors
Çağıran bağlamla ilişkilendirilmiş zamanlayıcı için geçerli sanal işlemci sayısını döndürür.
static unsigned int __cdecl GetNumberOfVirtualProcessors();
Dönüş Değeri
Bir zamanlayıcı, çağıran bağlamla ilişkiliyse, söz konusu zamanlayıcı için geçerli sanal işlemci sayısı; aksi takdirde değeridir -1
.
Açıklamalar
Çağıran bağlam zaten bir zamanlayıcıyla ilişkilendirilmemişse bu yöntem zamanlayıcı eki ile sonuçlanmaz.
Bu yöntemden döndürülen değer, çağıran bağlamla ilişkili zamanlayıcı için sanal işlemci sayısının anlık örneklemesidir. Bu değer döndürülürken eski olabilir.
GetPolicy
Geçerli zamanlayıcının oluşturulduğu ilkenin bir kopyasını döndürür.
static SchedulerPolicy __cdecl GetPolicy();
Dönüş Değeri
Geçerli zamanlayıcının oluşturulduğu ilkenin bir kopyası.
Açıklamalar
Bu yöntem, şu anda çağrı bağlamıyla ilişkilendirilmiş bir zamanlayıcı yoksa, işlemin varsayılan zamanlayıcısının oluşturulmasına ve/veya çağrı bağlamlarına eklenmesine neden olur.
Id
Geçerli zamanlayıcı için benzersiz bir tanımlayıcı döndürür.
static unsigned int __cdecl Id();
Dönüş Değeri
Bir zamanlayıcı arama bağlamı ile ilişkiliyse, söz konusu zamanlayıcı için benzersiz bir tanımlayıcı; aksi takdirde değeridir -1
.
Açıklamalar
Çağıran bağlam zaten bir zamanlayıcıyla ilişkilendirilmemişse bu yöntem zamanlayıcı eki ile sonuçlanmaz.
IsAvailableLocation
Belirli bir konumun geçerli zamanlayıcıda kullanılabilir olup olmadığını belirler.
static bool __cdecl IsAvailableLocation(const location& _Placement);
Parametreler
_Yerleştirme
Geçerli zamanlayıcının sorgulandığı konuma başvuru.
Dönüş Değeri
Bağımsız değişken tarafından _Placement
belirtilen konumun geçerli zamanlayıcıda kullanılabilir olup olmadığını gösteren bir gösterge.
Açıklamalar
Çağıran bağlam zaten bir zamanlayıcıyla ilişkilendirilmemişse bu yöntem zamanlayıcı eki ile sonuçlanmaz.
Dönüş değerinin, verilen konumun kullanılabilir olup olmadığını gösteren anlık bir örnekleme olduğunu unutmayın. Birden çok zamanlayıcının varlığında, dinamik kaynak yönetimi herhangi bir noktada zamanlayıcılara kaynak ekleyebilir veya kaynaklardan kaynak alabilir. Bu durumda, belirtilen konum kullanılabilirliği değiştirebilir.
RegisterShutdownEvent
Geçerli bağlamla ilişkili zamanlayıcı kapandığında ve kendisini yok ettiğinde parametresinde _ShutdownEvent
geçirilen Windows olay tanıtıcısının sinyal vermesine neden olur. Olay sinyallendiğinde zamanlayıcıya zamanlanmış olan tüm çalışmalar tamamlanır. Bu yöntemle birden çok kapatma olayı kaydedilebilir.
static void __cdecl RegisterShutdownEvent(HANDLE _ShutdownEvent);
Parametreler
_ShutdownEvent
Geçerli bağlamla ilişkili zamanlayıcı kapandığında ve kendisini yok ettiğinde çalışma zamanı tarafından sinyal verilecek bir Windows olay nesnesinin tanıtıcısı.
Açıklamalar
Çağıran bağlama eklenmiş bir zamanlayıcı yoksa, bu yöntemin çağrılması bir scheduler_not_attached özel durum oluşturmasına neden olur.
ScheduleTask
Çağıran bağlamla ilişkili zamanlayıcı içinde hafif bir görev zamanlar. Hafif görev, çalışma zamanı tarafından belirlenen bir zamanlama grubuna yerleştirilir. parametresini _Placement
alan sürüm, görevin belirtilen konumda yürütülmeye yönelik sapmaya neden olur.
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data);
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data,
location& _Placement);
Parametreler
_Yordam
Basit görevin gövdesini gerçekleştirmek için yürütülecek işlev işaretçisi.
_Veri
Görevin gövdesine parametre olarak geçirilecek verilere ilişkin geçersiz bir işaretçi.
_Yerleştirme
Hafif görevin yürütülmeye karşı önyargılı olacağı bir konuma başvuru.
Açıklamalar
Bu yöntem, şu anda çağrı bağlamıyla ilişkilendirilmiş bir zamanlayıcı yoksa, işlemin varsayılan zamanlayıcısının oluşturulmasına ve/veya çağrı bağlamlarına eklenmesine neden olur.
Ayrıca bkz.
Eşzamanlılık Ad Alanı
Zamanlayıcı Sınıfı
PolicyElementKey
Görev Zamanlayıcı