Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 57872|Risposta: 7

[Fonte] c# racchiude una coda universale QueueHelper

[Copiato link]
Pubblicato su 29/08/2018 10:39:11 | | | |
Nello sviluppo quotidiano, possiamo usare le code, che sono una struttura di archiviazione in grado di ottenere il "first-in, first-out".

Scenari applicativi: scrivere log, inviare email, ecc

Se dobbiamo registrare il log dell'interfaccia di ogni utente che richiede i nostri dati, non è necessario scrivere un log ogni volta che l'utente lo richiede, possiamo mettere il contenuto del log in coda e lasciare che altri thread lo esigano, così da non compromettere l'efficienza dell'applicazione.

Un altro vantaggio è che aggiungere dati alla coda in caso di concorrenza, usando un singolo thread per eseguire i dati della coda, può evitare molte eccezioni; se concorrenza (multi-thread), l'accesso allo stesso file fisico causerà eccezioni. (soggetto a disponibilità)

Approccio universale a coda:

Questa è una classe astratta, e devi ereditare questa classe di astrazione e implementare il metodo di astrazione Esegui. Poiché non so che tipo di dati vuoi elaborare, qui si usano generici, cioè, Entità è di tipo stringa, i parametri del metodo sono di tipo stringa, e i dati che stai elaborando sono dati di tipo stringa.

La coda thread-safe ConcurrentQueue garantisce che non ci siano eccezioni in un ambiente multithread.

ManualResetEvent per controllare il segnale del thread,In passato, controllavamo la coda per i dati ogni pochi secondi o minutiOra aggiungiamo i dati alla coda e basta passare un segnale!

Utilizzo:

(Fine)




Precedente:Processo di produzione del pacchetto di installazione del progetto Setup Voglio copiare la domanda principale sul file di output
Prossimo:La questione dei cinesi redis non può essere espressa correttamente
 Padrone di casa| Pubblicato su 24/05/2019 10:13:59 |
Consiglia un quadro di lavoro:

asp.net tutorial sul framework hangfire per compiti di background
https://www.itsvse.com/thread-7611-1-1.html
(Fonte: Architect_Programmer)
Pubblicato su 10/09/2019 10:26:26 |
Perché il metodo Execute nella classe Test non viene eseguito quando lo eseguisco?
 Padrone di casa| Pubblicato su 10/09/2019 21:52:44 |
hano7758 Pubblicato il 10-9-2019 alle 22:26
Perché il metodo Execute nella classe Test non viene eseguito quando lo eseguisco?

Puoi inviare il tuo codice?
 Padrone di casa| Pubblicato su 23/01/2021 11:53:46 |
.NET/C# si basa sulla coda di task in background BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html

Pubblicato su 26/07/2021 14:09:53 |
Come puoi vedere il codice
Pubblicato su 26/09/2022 22:20:08 |
Devo imparare a usarlo
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com