Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 57872|Antwoord: 7

[Bron] c# encapsuleert een universele QueueHelper-wachtrij

[Link kopiëren]
Geplaatst op 29-08-2018 10:39:11 | | | |
In de dagelijkse ontwikkeling gebruiken we mogelijk wachtrijen, een opslagstructuur die "first-in, first-out" kan bereiken.

Toepassingsscenario's: logs schrijven, e-mails versturen, enzovoort

Als we het interfacelog van elke gebruiker die onze data opvraagt moeten registreren, hoeven we niet elke keer dat de gebruiker erom vraagt een log te schrijven; we kunnen de loginhoud in de wachtrij leggen en andere threads deze laten uitvoeren, zodat de efficiëntie van de applicatie niet wordt aangetast.

Een ander voordeel is dat het toevoegen van data aan de wachtrij in het geval van gelijktijdigheid, waarbij één enkele thread de gegevens van de wachtrij uitvoert, veel uitzonderingen kan vermijden; als gelijktijdigheid (multi-threaded) toegang tot hetzelfde fysieke bestand uitzonderingen veroorzaakt. (afhankelijk van beschikbaarheid)

Universele wachtrijbenadering:

Dit is een abstracte klasse, en je moet deze abstractieklasse erven en de Execute abstraction-methode implementeren. Omdat ik niet weet welk type data je wilt verwerken, worden hier generieke gegevens gebruikt, dat wil zeggen: Entity is van stringtype, methodparameters van stringtype, en de data die je verwerkt is stringtype.

ConcurrentQueue thread-safe queue zorgt ervoor dat er geen uitzonderingen zijn in een multithreaded omgeving.

ManualResetEvent om het signaal van de thread te regelen,Vroeger controleerden we de wachtrij elke paar seconden of minuten op dataNu voegen we de data toe aan de wachtrij en hoeven we alleen nog maar een signaal door te geven!

Gebruik:

(Einde)




Vorig:Stel het productieproces van het projectinstallatiepakket in, ik wil de primaire uitvoerbestand-vraag kopiëren
Volgend:De kwestie van redis Chinese kan niet correct worden weergegeven
 Huisbaas| Geplaatst op 24-05-2019 10:13:59 |
Beveel een framework aan:

asp.net achtergrondtaak hangfire framework tutorial
https://www.itsvse.com/thread-7611-1-1.html
(Bron: Architect_Programmer)
Geplaatst op 10-09-2019 10:26:26 |
Waarom wordt de Execute-methode in de Test-klasse niet uitgevoerd wanneer ik hem uitvoer?
 Huisbaas| Geplaatst op 10-09-2019 21:52:44 |
hano7758 Geplaatst op 2019-9-10 10:26
Waarom wordt de Execute-methode in de Test-klasse niet uitgevoerd wanneer ik hem uitvoer?

Kun je je code posten?
 Huisbaas| Geplaatst op 23-01-2021 11:53:46 |
.NET/C# is gebaseerd op de BlockingCollection achtergrondtaakwachtrij
https://www.itsvse.com/thread-9528-1-1.html

Geplaatst op 26-07-2021 14:09:53 |
Hoe kun je de code zien?
Geplaatst op 26-09-2022 22:20:08 |
Ik moet leren hoe ik het moet gebruiken
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com