Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 3427|Válasz: 2

[Forrás] Egy új időzítőt használnak .NET 6-ban, PeriodicTimer-t

[Linket másol]
Közzétéve 2023. 08. 02. 19:12:40 | | |
Követelmények: Használd ASP.NET Core 6-ot egy új háttérszolgáltatás létrehozására, amely rendszeresen lekérdezést végez az adatok megszerzése érdekében, és használja aztSystem.Timers.TimerTimer polling, amely további Monitor kódot ad, hogy megakadályozza az ismétlődő végrehajtást egyszerre, bár megfelel az üzleti igényeimnek, nem elég elegáns, és az új PeriodicTimer időzítő a .NET 6-ban jobban kielégítheti az üzleti igényeimet.

Fejlesztőként lehet, hogy korábban használtál időzítőt .NET-ben. Ma a .NET-ben sokféle időzítő létezik, mindegyik más célt szolgál. Következőképpen:

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


Új időzítőt vezettek be a .NET 6-ban – System.Threading.PeriodicTimer, és a legnagyobb különbség az előző időzítőkhöz képest, hogy az új PeriodicTimer eseménykezelése kényelmesebb, aszinkron módon használható, megszüntetve a visszahívások mechanizmusát és csökkentve a használat összetettségét.

A .NET 6 bevezetett egy új időzítő típust, amit PeriodicTimer néven ismertek. A PeriodicTimer fő célja, hogy elkerüljék a visszahívások használatát.A visszahívások elkerülése megóvja minket a memóriakiszivárgásoktól, amelyek hosszú távú műveletek során előfordulhatnak, és írhatunk aszinkron kódot aszinkron helyett, hogy ezt a módszert visszahívásokban használjuk. Lehet, hogy a jelenlegi időzítő típussal kell foglalkoznodEgy másik probléma a átfedő visszahívások。 Ha nem írsz kódot visszahívásos átfedési helyzetekhez, váratlan viselkedést tapasztalhatsz az alkalmazásodban.

alkotPeriodicTimerAz instance nagyon egyszerű, az egyetlen paraméter, amit meg kell adnod, az a periódusérték, a kód a következő:

Aszinkron időzítés háttérfeladat kód:

(Vége)





Előző:Base64 dekódolási hibák minden .NET verzióban megtalálhatók
Következő:.NET/C# általános T kovariáns kimenet és inverter interfészben
 Háziúr| Közzétéve 2023. 08. 02. 20:22:23 |
 Háziúr| Közzétéve 2023. 11. 12. 9:42:28 |
A szolgáltatás megáll, és a CancelToken értesíti a feladat törlését, ami a következő dobáshoz vezet:OperationCanceledExceptionrendellenes
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com