Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 41603|Odgovoriti: 2

[Vir] .NET/C# izvaja preprosto beleženje na osnovi BlockingCollection

[Kopiraj povezavo]
Objavljeno 5. 1. 2021 ob 14:58:50 | | | |
Prej sem napisal preprost tečaj pomoči pri beleženju, kopiran iz drugega ogrodja, in test ni enostaven za uporabo, kot sledi:

C# je najlažji način za pisanje dnevnikov
https://www.itsvse.com/thread-5111-1-1.html
Ta članek ponovno uvaja preprost razred beleženja, ki temelji na BlockingCollection.

.NET/C# zbirka varnosti niti (združevanje)
https://www.itsvse.com/thread-3769-1-1.html
BlockingCollection<T> je razred zbiranja, varen za niti in zagotavlja naslednjo funkcionalnost:

Uvedite model maker-user.
Dodajanje in pridobivanje predmetov hkrati preko večnitnosti.
Opcijska največja kapaciteta.
Ko je zbirka prazna ali polna, jo blokirajo operacije vstavljanja in odstranjevanja.
Poskusi vstavljanja in odstranjevanja ne blokirajo in ne potekajo določen čas.
Enkapsulacija omogoča katerokoli vrsto zbirke IProducerConsumerCollection<T>
Uporabite oznako preklica za izvedbo akcije preklica.
Podprti sta dve vrsti enumov, ki uporabljata foreach (v Visual Basicu, For Each): enumi samo za branje. Enumeracija, ki odstrani element, ko je element enumeriran.


Microsoft predstavlja:Prijava do hiperpovezave je vidna.

BlockingCollection je zaporedna vrsta blokiranja, varna za niti in uporablja to funkcijo za implementacijo načina producent-potrošnik v procesu, kot so posredovanje sporočil, beleženje itd.

Pokliči njegovo metodo Add za dodajanje informacij v čakalno vrsto, in ko čakalna vrsta nima sporočil, bo IsCompleted vedno blokiral while zanko, zato ne bo povzročil mrtve zanke. Ko pride novo sporočilo, se sproži IsCompleted in while in vrne bool tip, kar povzroči nadaljevanje izvajanja, torej pridobivanje podatkov iz niti.


Prej smo nit blokirali tako, da smo klicali metodo WaitOne ManualResetEvent, klicali pa smo metodi Reset in Set za prenos signala, kot sledi:

c# kapsulira univerzalno vrsto QueueHelper
https://www.itsvse.com/thread-5029-1-1.html


Test zapiše 10.000 logov, kar traja manj kot 10 milisekund, kot je prikazano na spodnji sliki:



Koda je naslednja:

Prenos izvorne kode:

Turisti, če želite videti skrito vsebino te objave, prosimOdgovoriti





Prejšnji:warning: LF will be replaced by CRLF in xxxx.
Naslednji:Optimizacija poizvedb v okviru entitete Z (NOLOCK)
 Najemodajalec| Objavljeno 23. 1. 2021 ob 11:53:55 |
.NET/C# temelji na ozadju naloge BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html

Objavljeno 24. 4. 2023 ob 22:36:31 |
Odlično, zelo dobro učno gradivo
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com