Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 38466|Odgovoriti: 0

[Napitnine] Kako shraniti tok v datoteko v C#/.NET

[Kopiraj povezavo]
Objavljeno 2021-5-16 21:12:58 | | |
Pogledal sem nekaj blogov na spletu o shranjevanju Streama v datoteko,Veliko jih je napačnih。 (Ugotovil sem več težav: slaba zmogljivost, nenormalno, ko je tok prevelik)

Ko dobite Stream, kako elegantno shraniti ta Stream v kodo

Najbolj elegantna metoda naj bi bila metoda CopyTo ali CopyToAsync


tukaj inputStream.Seek(0, SeekOrigin.Begin); Ni nujno, prosim, uporabite to kodo glede na svoje potrebe, na primer kopirajte tok le iz 10. bajta itd

Uporaba asinhronega pristopa bo za ta zapis trajala nekoliko dlje, vendar bo izboljšala splošno zmogljivost in CPU-ju omogočila opravljanje drugih nalog




Upoštevajte, da pri uporabi CopyToAsync ne pozabite dodati čakanja; pri izvajanju te kode boste izvajanje predali IO, večina obdelave IO ne zahteva procesorja za izračun, zato je lahko splošna zmogljivost boljša

Prav tako, če iputStream prihaja od zunaj, potem ne priporočam sproščanja znotraj te metode, zakaj? Uporabil sem dober potok, ki je bil ukinjen, ko sem šel mimo v podjetju

Druga metoda je, da sami nadzorujete predpomnilnik za replikacijo pomnilnika, ki bo imel dodatno kopijo pomnilnika


Ta metoda omogoča spreminjanje vrednosti novega bajta[1024], kar vam daje nadzor nad kopiranim predpomnilnikom

Naslednje so nekatere metode, ki niso priporočljive, a so priročne pri pisanju


Zgornja metoda bo pomnilnik kopirala dvakrat, in če je dolžina vhodnega vira 1G, bo zasedel 2G virov

Podobno kot zgoraj je zahteva velik predpomnilnik, kot je prikazano v naslednji kodi


Kar zadeva učinkovitost in eleganco kode, so dejansko slabše od metode CopyTo in to zaradi pretoka. Dolžina kot dolžina ne določa predpomnilnika, zato ni tako dobra kot druga metoda

Spodaj je zelo počasna metoda, pisanje en bajt za enim bajtom je zelo počasno


Preneseno iz:Prijava do hiperpovezave je vidna.
(Konec)




Prejšnji:Podrobna razlaga operacije NPOI Excel
Naslednji:X-Posredovano – Za več IP naslovov v HTTP glavi zahteve
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com