Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3427|Yanıt: 2

[Kaynak] .NET 6'da yeni bir zamanlayıcı olan PeriodicTimer kullanılır

[Bağlantıyı kopyala]
Yayınlandı 2.08.2023 19:12:40 | | |
Gereksinimler: Core 6 ASP.NET yı kullanarak düzenli olarak veri elde etmek için anket yapacak yeni bir arka plan hizmeti oluşturun ve kullanınSystem.Timers.TimerZamanlayıcı anketi, aynı anda tekrarlanan yürütmeyi önlemek için ek Monitor kodu eklemek, iş ihtiyaçlarımı karşılamasa da yeterince şık değil ve .NET 6'daki yeni PeriodicTimer zamanlayıcısını kullanmak iş ihtiyaçlarımı daha iyi karşılayabiliyor.

Bir geliştirici olarak, daha önce .NET'te zamanlayıcı kullanmış olabilirsiniz. Bugün .NET'te farklı bir amaca hizmet eden birçok tür zamanlayıcı vardır. Şöyle:

  • System.Threading.Timer
  • System.Timers.Timer
  • System.Windows.Forms.Timer
  • System.Web.UI.Timer
  • System.Windows.Threading.DispatcherTimer


.NET 6'da yeni bir Zamanlayıcı - System.Threading.PeriodicTimer tanıtıldı ve önceki Zamanlayıcılardan en büyük fark, yeni Periyodik Zamanlayıcının olay işlemesinin daha uygun ve asenkron şekilde kullanılabilmesi, geri çağrı mekanizmasını ortadan kaldırarak kullanım karmaşıklığını azaltmasıdır.

.NET 6, PeriodicTimer adı verilen yeni bir zamanlayıcı türü tanıttı. PeriodicTimer'ın temel amacı, geri çağrı kullanımından kaçınmaktır.Geri çağrılardan kaçınmak, uzun vadeli işlemlerde ortaya çıkabilecek bellek sızıntılarıyla uğraşmamızı sağlar, ve bu yöntemi geri çağrılarda kullanmak için senkron yerine asenkron kod yazabiliriz. Mevcut zamanlayıcı tipiyle uğraşıyor olabilirsinizBir diğer sorun ise örtüşen geri dönüş çağrılarının üst üste bindirmesidir。 Geri çağrı örtüşme senaryoları için kod yazmıyorsanız, uygulamanızda beklenmedik davranışlar görebilirsiniz.

yaratmakPeriodicTimerÖrnek çok basit, sağlamanız gereken tek parametre nokta değeri, kod şöyle:

Asenkron Zamanlama Arka Plan Görev Kodu:

(Son)





Önceki:Base64 kod çözme hataları .NET'in tüm sürümlerinde mevcuttur
Önümüzdeki:.NET/C# genel T kovaryant çıkışı ve arayüzde invertör
 Ev sahibi| Yayınlandı 2.08.2023 20:22:23 |
 Ev sahibi| Yayınlandı 12.11.2023 09:42:28 |
Hizmet durur ve CancellationToken görevin iptalini bildirir, bu da atma anlamına gelir:OperationCanceledExceptionanormal
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com