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.
Çağırma bağlamıyla ilişkili mevcut zamanlayıcıya yönelik 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üklü Ç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ükten sonra, çağrı bağlamı daha önce CurrentScheduler::Create veya Scheduler::Attach yöntemi kullanılarak bağlama eklenen zamanlayıcı tarafından yönetilir. |
| Edinin | Çağrı bağlamı ile ilişkilendirilmiş, mevcut zamanlayıcı olarak da adlandırılan 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. |
| ID | 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 kendi kendini yok ettiğinde parametresinde _ShutdownEvent geçirilen Windows olay tanıtıcısının sinyal gönderilmesine 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üklü Ç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
_Policy parametresiyle açıklanan bir zamanlayıcı oluşturur ve bunu çağrı bağlamına 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ına eklenmesi, zamanlayıcıya otomatik olarak bir başvuru sayısı ekler.
Create yöntemi ile bir zamanlayıcı oluşturduktan sonra, zamanlayıcının kapanmasına olanak sağlamak için gelecekte bir noktada CurrentScheduler::Detach 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.
ProgramGrubuOluştur
Ç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 eğilimli olacağı konuma bir referans.
Dönüş Değeri
Yeni oluşturulan zamanlama grubuna bir işaretçi. Bu ScheduleGroup nesne üzerinde bir başlangıç referans sayısı bulunmaktadır.
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 referansınızı zamanlayıcıdan bırakmadan önce, içindeki tüm zamanlama grubu referanslarını bırakmanız gerektiğini unutmayın.
Bağlantıyı Kes
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ükten sonra, çağrı bağlamı daha önce CurrentScheduler::Create veya Scheduler::Attach yöntemi kullanılarak bağlama eklenen 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ğrı yapılan bağlama bir zamanlayıcı eklenmemişse, bu yöntemin çağrılması bir scheduler_not_attached özel durumu atılmasına neden olur.
Bu yöntemin, bir zamanlayıcı tarafından içsel olarak ve yönetilen bir bağlamdan veya Scheduler::Attach veya CurrentScheduler::Create yöntemleri dışında bir yöntemle eklenmiş bir bağlamdan çağrılması, bir improper_scheduler_detach özel durumu oluşturulmasına neden olacaktır.
Al
Çağrı bağlamı ile ilişkilendirilmiş, mevcut zamanlayıcı olarak da adlandırılan 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 Scheduler nesnesine ek bir başvuru yapılmamıştır.
SanalİşlemciSayısınıAl
Ç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
Mevcut zamanlayıcının oluşturulduğu politikanın 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.
MevcutKonumMu
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
_Placement bağımsız değişkeni tarafından belirtilen konumun mevcut zamanlayıcıda kullanılabilir olup olmadığını gösterir.
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.
KapatmaOlayıKaydet
Geçerli bağlamla ilişkili zamanlayıcı kapandığında ve kendi kendini yok ettiğinde parametresinde _ShutdownEvent geçirilen Windows olay tanıtıcısının sinyal gönderilmesine 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 (Kapatma Olayı)
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ğrı yapılan bağlama bir zamanlayıcı eklenmemişse, bu yöntemin çağrılması bir scheduler_not_attached özel durumu atılmasına neden olur.
Görev Planla
Ç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
_Prosedür
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
Bir hafif yük görevinin yürütülmeye eğilimli olacağı bir konuma referans.
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ı