Aracılığıyla paylaş


Beklenebilir Süreölçer Nesneleri

beklenebilir süreölçer nesnesi, belirtilen son zaman geldiğinde durumu sinyal olarak ayarlanmış bir eşitleme nesnesidir. Oluşturulabilecek iki tür beklenebilir zamanlayıcı vardır: el ile sıfırlama ve eşitleme. Her iki türden bir zamanlayıcı da düzenli bir zamanlayıcı olabilir.

Nesne Açıklama
el ile sıfırlama zamanlayıcısı Durumu SetWaitableTimerkadar sinyalli kalan bir zamanlayıcı, yeni bir son tarih belirlemek için çağrılır.
eşitleme zamanlayıcısı Bir iş parçacığı zamanlayıcı nesnesinde bekleme işlemini tamamlayana kadar durumu sinyalli olarak kalan bir zamanlayıcı.
periyodik süreölçer Süreölçer sıfırlanana veya iptal edilene kadar belirtilen sürenin süresi her dolduğunda yeniden etkinleştirilen zamanlayıcı. Düzenli süreölçer, düzenli bir el ile sıfırlama zamanlayıcısı veya düzenli bir eşitleme zamanlayıcısıdır.

 

Not

Süreölçer işaretlendiğinde, işlemcinin ilişkili yönergeleri işlemek için çalışması gerekir. Yüksek frekanslı düzenli zamanlayıcılar işlemciyi sürekli meşgul tutar ve bu da sistemin anlamlı bir süre boyunca daha düşük güç durumunda kalmasını önler. Bu, taşınabilir bilgisayarın pil ömrünü ve büyük veri merkezleri gibi etkili güç yönetimine bağlı senaryoları olumsuz etkileyebilir. Daha fazla enerji verimliliği için uygulamanızda zamana bağlı bildirimler yerine olay tabanlı bildirimler kullanmayı göz önünde bulundurun. Süreölçer gerekiyorsa, düzenli süreölçer yerine bir kez sinyal veren bir zamanlayıcı kullanın veya aralığı bir saniyeden büyük bir değere ayarlayın.

 

İş parçacığı, bir zamanlayıcı nesnesi oluşturmak için CreateWaitableTimerveya CreateWaitableTimerEx işlevinikullanır. Oluşturma iş parçacığı, zamanlayıcının el ile sıfırlama zamanlayıcısı mı yoksa eşitleme zamanlayıcısı mı olduğunu belirtir. Oluşturma iş parçacığı zamanlayıcı nesnesi için bir ad belirtebilir. Diğer işlemlerdeki iş parçacıkları, OpenWaitableTimer işlevine yapılan çağrıda adını belirterek var olan bir zamanlayıcıya tanıtıcı açabilir. Zamanlayıcı nesnesi tanıtıcısı olan herhangi bir iş parçacığı, zamanlayıcı durumunun işaretlenmek üzere ayarlanmasını beklemek için bekleme işlevlerinden birini kullanabilir.

  • İş parçacığı, zamanlayıcıyı etkinleştirmek için SetWaitableTimer işlevini çağırır. SetWaitableTimeriçin aşağıdaki parametrelerin kullanıldığına dikkat edin:
  • Zamanlayıcının sinyal durumuna ayarlanacağı zamanı belirtmek için lpDueTime parametresini kullanın. El ile sıfırlama zamanlayıcısı sinyalli duruma ayarlandığında, SetWaitableTimeryeni bir son tarihkadar bu durumda kalır. Eşitleme zamanlayıcısı sinyalli duruma ayarlandığında, bir iş parçacığı zamanlayıcı nesnesinde bekleme işlemini tamamlayana kadar bu durumda kalır.
  • Zamanlayıcı süresini belirtmek için SetWaitableTimer işlevinin lPeriod parametresini kullanın. Süre sıfır değilse, zamanlayıcı düzenli bir zamanlayıcıdır; sürenin süresi her dolduğunda zamanlayıcı sıfırlanana veya iptal edilene kadar yeniden etkinleştirilir. Süre sıfır ise, zamanlayıcı düzenli bir zamanlayıcı değildir; bir kez işaretlendikten sonra devre dışı bırakılır.

İş parçacığı, zamanlayıcıyı etkin olmayan duruma ayarlamak için CancelWaitableTimer işlevini kullanabilir. Zamanlayıcıyı sıfırlamak için SetWaitableTimer'ı çağırın. Zamanlayıcı nesnesiyle işiniz bittiğinde, zamanlayıcı nesnesinin tutamacını kapatmak için CloseHandleçağırın.

Beklenebilir süreölçerin davranışı aşağıdaki gibi özetlenebilir:

  • Zamanlayıcı ayarlandığında, zaten etkinse iptal edilir, zamanlayıcının durumu işaretsizdir ve zamanlayıcı çekirdek zamanlayıcı kuyruğuna yerleştirilir.
  • Süreölçerin süresi dolduğunda, zamanlayıcı sinyalli duruma ayarlanır. Zamanlayıcının bir tamamlama yordamı varsa, zamanlayıcıyı ayarlayan iş parçacığına kuyruğa alınır. tamamlanma yordamı, iş parçacığı uyarılabilen bir bekleme durumuna girene kadar iş parçacığının zaman uyumsuz yordam çağrısı (APC) kuyruğunda kalır. Bu sırada APC gönderilir ve tamamlama yordamı çağrılır. Süreölçer düzenliyse, çekirdek zamanlayıcı kuyruğuna geri yerleştirilir.
  • Bir süreölçer iptal edildiğinde, bekliyorsa çekirdek zamanlayıcı kuyruğundan kaldırılır. Süreölçerin süresi dolmuşsa ve zamanlayıcıyı ayarlayan iş parçacığında hala kuyruğa alınmış bir APC varsa, APC iş parçacığının APC kuyruğundan kaldırılır. Zamanlayıcının sinyal durumu etkilenmez.

Zaman Uyumsuz Yordam Çağrıları

Beklenebilir Süreölçer Nesneleri Kullanarak