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

Vista: 19792|Risposta: 0

[Fonte] Uso di SyncRoot in StringDictionary

[Copiato link]
Pubblicato su 23/11/2016 14:26:38 | | | |

La programmazione orientata agli oggetti C# offre molte classi operative user-friendly, ora questo StringDictionary è una raccolta di classi specializzate nell'archiviazione di stringhe come chiavi e valori, il significato di questa classe è: C# sa che la stringa nel tipo di valore è abbastanza ampiamente utilizzata, altri tipi di valore possono essere convertiti in tipi di stringa corrispondenti, questo è il significato di questa collezione, ma puoi comunque usare altri oggetti di raccolta per sostituirla, ma presta attenzione a un punto, Se si tratta di memoria a stringhe, questo può ridurre la perdita di memoria e il tempo necessario per eseguire il programma


SyncRoot può essere usato per sincronizzare l'accesso al StringDictionary

Per dirla senza mezzi termini, si tratta del concetto di lock, scriviamo un programma per testarlo:

Il codice è il seguente:



Abbiamo due thread contemporaneamente per aggiungere dati al dizionario StringDictionary,

La differenza di tempo di esecuzione tra il primo e il secondo thread è di un secondo, per allargare la differenza di tempo e evitare che l'esecuzione sia troppo veloce.

Puoi vedere che i thread sono passati ai due metodi e, quando si aggiunge il secondo dato, hanno aspettato che vengano aggiunti i primi dati prima di aggiungere i secondi, e il tempo di somma è molto veloce.

Di seguito, lo scriveremo in modo diverso per renderlo più facile da comprendere:





Si aprono 3 thread, i dati vengono sommati e i 3 thread vengono eseguiti quasi contemporaneamente, ma quando i dati vengono aggiunti, ciascuno è a distanza di 10 secondi.

In sintesi, quando si accede a multithread, possiamo usare SyncRoot per garantire la sicurezza dei thread




Precedente:Come usare WPF Trigger per cambiare pulsanti
Prossimo:c# Usa l'OCR per riconoscere le immagini cinesi
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