Biraz için soruyu ama. . .
System.Timers.Timer
, System.Threading.Timer
boyutunda bir sarıcıdır ve bu da Windows 'Timer Queues civarında bir .NET sarıcısıdır. Zamanlayıcı sıra zamanlayıcıları çok hafiftir - az sayıda sistem kaynağı kullanın. Binlerce zamana hitap etmedim, ancak yüzlerce zamanlayıcı gayet iyi çalışıyor. Uygulamadan ne kadar azını toplayabildiğimden, binlerce zamanlayıcının problemi olacağını hayal bile edemiyorum.
Belirli bir zamanlayıcı sırasındaki zamanlayıcı sayısında muhtemelen bir sınırlama vardır. Bu sınırın ne olduğunu bilmiyorum. Bu zamanlayıcıları bir yıl veya daha önce incelediğimde, .NET Framework'ün işlem başına bir zamanlayıcı sırası (veya uygulama alanı başına) oluşturduğuna benziyordu ve oluşturduğunuz tüm zamanlayıcılar bu sıraya dahil edildi.
Muhtemelen ne zaman çağrılırsa kontrol etmek için tek bir zamanlayıcı ve bazı öncelik sırasını kullanan kendi sisteminizi oluşturarak zamanlayıcı sıra işlevini çoğaltmak mantıklı değildir. Zamanlayıcı kuyruğu sizin için zaten böyle.
Kolayca 10,000 zamanlayıcı oluşturan bir sınama programı oluşturabilirsiniz. Her birini sondan sonra bir saniye işaretlemek için ayarlayın ve süresini 10.000 saniyeye ayarlayın. Ardından arkanıza yaslanın ve izleyin. Ya da programınızı kimin kimler tarafından işaretleneceğini ve kimin bir sonraki adımı atacağını takip etmesini sağlayın.
Threading.Timer hakkında benzer bir sorum var. – GregC
@GregC, bu bağlantılara bir bağlantı gönderebilir miyim? – tster