Aracılığıyla paylaş


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ı