Pozrel som si niektoré blogové príspevky online o ukladaní Streamu do súboru,Mnohé sa mýlia。 (Našiel som niekoľko problémov: slabý výkon, abnormálne, keď je stream príliš veľký)
Po získaní streamu, ako elegantne uložiť tento stream do kódu
Najelegantnejšou metódou by mala byť metóda CopyTo alebo CopyToAsync
tu inputStream.Seek(0, SeekOrigin.Begin); Nie nevyhnutne, prosím, použite tento kód podľa vlastných potrieb, napríklad stačí skopírovať stream z 10. bajtu a podobne
Použitie asynchrónneho prístupu potrvá tento zápis o niečo dlhšie, ale celkový výkon sa zvýši a umožní CPU zvládnuť aj iné úlohy
Všimnite si, že pri používaní CopyToAsync nezabudnite pridať await, pri vykonávaní tohto kódu odovzdáte vykonávanie IO, väčšina IO spracovania nevyžaduje CPU na výpočty, takže celkový výkon môže byť lepší
Tiež, ak iputStream prichádza zvonku, neodporúčam ho uvoľňovať touto metódou, prečo? Použil som dobrý potok a ten bol zničený, keď som prechádzal v podniku
Druhou metódou je ovládať replikáciu cache pamäte sami, ktorá bude mať ďalšiu kópiu pamäte
Táto metóda vám umožňuje upraviť hodnotu nového bajtu[1024], čím získate kontrolu nad skopírovanou cache
Ďalšie sú niektoré metódy, ktoré sa neodporúčajú, ale sú pohodlné pri písaní
Vyššie uvedená metóda skopíruje pamäť dvakrát, a ak je dĺžka vstupného zdroja 1G, zaberie 2G zdrojov
Podobne ako vyššie je požiadavka na veľkú cache, ako je ukázané v nasledujúcom kóde
Čo sa týka efektivity a elegancie kódu, sú v skutočnosti horšie ako metóda CopyTo, a to kvôli streamu. Dĺžka ako dĺžka neurčuje cache, takže nie je taká dobrá ako druhá metóda
Nižšie je veľmi pomalá metóda, zápis jeden bajt po jednom bajte je veľmi pomalý
Prenesené z:Prihlásenie na hypertextový odkaz je viditeľné. (Koniec)
|