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

Vista: 19029|Risposta: 0

[Fonte] C# esegue operazioni di attraversamento sicuro in un ambiente multi-thread

[Copiato link]
Pubblicato su 18/10/2016 13:55:48 | | |

Questo articolo utilizza List come oggetto operazione
MSDN fornisce ufficialmente la dichiarazione di sicurezza del thread di List:
Questo tipo di membro statico pubblico è thread-safe. Tuttavia, nessun membro di istanza può essere garantito come sicuro per thread.
Finché la collezione non viene modificata, List può supportare più lettori contemporaneamente. Enumerare attraverso un insieme non è intrinsecamente un processo thread-safe. Nel raro caso in cui un'enumerazione compete con uno o più access di scrittura, l'unico modo per mantenere i thread sicuri è bloccare la collezione per tutta la durata dell'enumerazione. Per permettere a più thread di accedere alla collezione per operazioni di lettura e scrittura, devi implementare la tua sincronizzazione.
Se non sincronizzate?
Se un thread esegue un'operazione di cancellazione e un thread esegue un'operazione di attraversamento, durante il processo di attraversamento la collezione viene modificata, il che farà apparire un'eccezione InvalidOperationException, che suggerisce: la collezione è stata modificata; Le operazioni di enumerazione non possono essere eseguite.
Come sincronizzare per garantire la sicurezza dello spostamento
Qui vengono usate zone critiche, mutex per proteggere il processo di attraversamento dei thread, il codice di esempio è il seguente:






Precedente:Soluzione all'errore di firma jssdk dell'account ufficiale WeChat sotto China Unicom
Prossimo:asp.net Gestione globale delle eccezioni MVC e log delle eccezioni
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