Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 41603|Atbildi: 2

[Avots] .NET/C# īsteno vienkāršu reģistrēšanu, pamatojoties uz BlockingCollection

[Kopēt saiti]
Publicēts 2021-1-5 14:58:50 | | | |
Es iepriekš uzrakstīju vienkāršu reģistrēšanas palīdzības klasi, kas nokopēta no citas sistēmas, un tests nav viegli lietojams, šādi:

C# ir vienkāršākais veids, kā rakstīt žurnālus
https://www.itsvse.com/thread-5111-1-1.html
Šajā rakstā atkārtoti tiek ieviesta vienkārša reģistrēšanas klase, kuras pamatā ir BlockingCollection.

.NET/C# pavedienu drošības kolekcija (salīdzināšana)
https://www.itsvse.com/thread-3769-1-1.html
BlockingCollection<T> ir pavedienu droša vākšanas klase, kas nodrošina šādu funkcionalitāti:

Ieviesiet veidotāja-lietotāja modeli.
Pievienojiet un iegūstiet vienumus vienlaicīgi, izmantojot vairāku pavedienu.
Maksimālā ietilpība pēc izvēles.
Ja kolekcija ir tukša vai pilna, tā tiek bloķēta, veicot ievietošanas un noņemšanas darbības.
Ievietošanas un noņemšanas mēģinājumi netiek bloķēti un nenotiek noteiktu laika periodu.
Iekapsulēšana īsteno jebkura veida IProducerConsumerCollection<T>
Izmantojiet atcelšanas atzīmi, lai veiktu atcelšanas darbību.
Tiek atbalstīti divu veidu uzskaitījumi, kas izmanto foreach (programmā Visual Basic, For Each): tikai lasāmi uzskaitījumi. Uzskaitījums, kas noņem vienumu, kad vienums ir uzskaitīts.


Microsoft ievieš:Hipersaites pieteikšanās ir redzama.

BlockingCollection ir pavedienu droša bloķēšanas rinda, izmantojot šo funkciju, lai procesā ieviestu ražotāja-patērētāja režīmu, piemēram, ziņojumu pārsūtīšanu, reģistrēšanu utt.

Izsauciet savu Add metodi, lai pievienotu informāciju rindai, un, ja rindā nav ziņojumu, IsCompleted vienmēr bloķēs while cilpu, tāpēc tas neradīs mirušu cilpu. Kad tiek parādīts jauns ziņojums, tiek aktivizēts IsCompleted in while un atgriežas bool tips, izraisot izpildes turpināšanos, tas ir, datu iegūšanu no pavediena.


Iepriekš mēs bloķējām pavedienu, izsaucot ManualResetEvent metodi WaitOne, izsaucot Reset un Set metodes, lai nodotu signālu, šādi:

c# iekapsulē universālu QueueHelper rindu
https://www.itsvse.com/thread-5029-1-1.html


Tests raksta 10,000 žurnālus, kas aizņem mazāk nekā 10 milisekundes, kā parādīts attēlā:



Kods ir šāds:

Avota koda lejupielāde:

Tūristi, ja vēlaties redzēt šīs ziņas slēpto saturu, lūdzuAtbildi





Iepriekšējo:warning: LF will be replaced by CRLF in xxxx.
Nākamo:Entītiju struktūras vaicājumu optimizācija ar(NOLOCK)
 Saimnieks| Publicēts 2021-1-23 11:53:55 |
.NET/C# pamatā ir fona uzdevumu rinda BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html

Publicēts 2023-4-24 22:36:31 |
Lielisks, ļoti labs mācību materiāls
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com