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

Vista: 38466|Risposta: 0

[Consigli] Come salvare uno stream in un file in C#/.NET

[Copiato link]
Pubblicato il 16-05-2021 21:12:58 | | |
Ho letto alcuni post online sul salvataggio di Stream in un file,Molti sono sbagliati。 (Ho riscontrato diversi problemi: scarse prestazioni, anomalie quando il flusso è troppo grande)

Dopo aver fatto una diretta, come salvare elegantemente questa diretta in codice

Il metodo più elegante dovrebbe essere tramite CopyTo o CopyToAsync


qui inputStream.Seek(0, SeekOrigin.Begin); Non necessariamente, usa questo codice in base alle tue esigenze, ad esempio devi copiare il flusso dal decimo byte, ecc

L'uso dell'approccio asincrono richiederà un po' più di tempo per questa scrittura, ma offrirà prestazioni complessive migliori e permetterà alla CPU di gestire altri compiti




Nota che quando si usa CopyToAsync, ricorda di aggiungere await; quando esegui questo codice, passerai l'esecuzione all'IO; la maggior parte dell'elaborazione IO non richiede la CPU per essere calcolata, così da migliorare le prestazioni complessive

Inoltre, se l'iputStream entra dall'esterno, allora non consiglio di rilasciarlo all'interno di questo metodo, perché? Ho usato un buon ruscello e si è interrotto quando sono passato in un'attività

Il secondo metodo è controllare tu stesso la cache di replicazione della memoria, che avrà una copia di memoria aggiuntiva


Questo metodo permette di modificare il valore del nuovo byte[1024], dandoti il controllo sulla cache copiata

I seguenti sono alcuni metodi che non sono raccomandati, ma che sono comodi durante la scrittura


Il metodo sopra copierà la memoria due volte e, se la lunghezza della risorsa di input è 1G, occuperà 2G di risorse

Simile a quanto sopra, richiedere una grande cache, come mostrato nel seguente codice


In termini di efficienza ed eleganza del codice, sono in realtà inferiori al metodo CopyTo, e a causa del flusso di flusso. La lunghezza come lunghezza non determina la cache, quindi non è buona come il secondo metodo

Qui sotto c'è un metodo molto lento, scrivere un byte per un byte è molto lento


Trasferito da:Il login del link ipertestuale è visibile.
(Fine)




Precedente:Spiegazione dettagliata dell'Operazione Excel NPOI
Prossimo:X-Forwarded-Per più indirizzi IP nell'intestazione della richiesta HTTP
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