Hirdetés
- Billentyűzet-választó: mechanikus vs membrános – kinek melyik a jobb?
- Milyen TV-t vegyek?
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- VR topik
- Mesébe illő csodakábelt tervezett a GeForce-ok leégése ellen a Segotep?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Canon MILC: EOS R és M topik
- Azonnali processzoros kérdések órája
- Milyen videókártyát?
- Apple asztali gépek
Új hozzászólás Aktív témák
-
joysefke
veterán
Uhh

https://msdn.microsoft.com/en-us/library/system.io.compression.deflatestream.flush(v=vs.110).aspx
DeflateStream.Flush Method ()The current implementation of this method does not flush the internal buffer. The internal buffer is flushed when the object is disposed.
GZipStream.Flush() ugyanez...
Mondjuk továbbra sem értem, miért elegendő, ha a ToArray() a StreamWriter blokkján kívül, de a GZipStream blokkján belül van. Azt várnám, hogy ahogy Te tanácsoltad, a GZipStream blokkja után kellene hogy legyen, hogy biztonságos legyen meghívni a ToArray-t. (mert ekkor a GZipStream is Dispose-olva és ezáltal a bufferje is ürítve lett)
-
joysefke
veterán
Köszi!
1,
Nem a zárójelek javították meg, hanem az hogy a GZipStream using blokkon kívülre került a ToArray hívásVak vagyok

Próbálgattam a dolgot, és elegendő volt a ToArray() hívást a StreamWriter- using blokkján kívülre rakni, már az is megjavította (úgy hogy a GZipStream using blokkján még belül volt ) (!!!)
Tehát abban igazad van, hogy ki kellett lépni valamelyik using blokkból.2,
A flush pedig nem szükséges (mivel a végén van nem okoz problémát, csak kétszer hívódik), mert a Dispose során a Framework meghívja mindenképpen.OK, ezt értem, de azt nem értem, hogy az én megoldásom miért nem jó, tehát, ha még a legbelső (StreamWriter) using blokkon belül akarom a ToArray()-t megívni backing streamen (MemoryStream), akkor miért nem működik az, hogy szépen visszafele meghívom a Flush()-öket:
sw.Flush(); ds.Flush(); ms.Flush();aztán meghívom a MemoryStreamen a ToArray()-t.Itt azt várnám, hogy a Flush() hívások után a a MemoryStream mindent tartalmaz amit beleírtam (kiürültek a bufferek), tehát bátran hívhatok ToArray()-t...
Itt ugye asszinkronitás sincsen, tehát abban a pillanatban amikor meghívom a Flush()-t, akkor már minden írás amit előtte kiadtam már megtörtént (bufferbe)És ez működik is úgy, hogy nincsen tömörítés (DeflateStream vagy GZipStream) hanem csak Streamwriter( MemoryStream()) van. Onnantól kezdve, hogy közé ékelek egy GZipStreamet vagy DeflateStream-et, borul az egész...
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Billentyűzet-választó: mechanikus vs membrános – kinek melyik a jobb?
- A fociról könnyedén, egy baráti társaságban
- Milyen TV-t vegyek?
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- droidic: Safe Mode az agyban
- Formula-1
- VR topik
- Horgász topik
- Mesébe illő csodakábelt tervezett a GeForce-ok leégése ellen a Segotep?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- Telefon szerviz helyben - Gyors javítás, akár 30 perc alatt!
- Gamer/streamer mikrofon, állvány és USB HUB kitűnő árakon!
- Apple iPhone SE 2020 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku:82%
- Macbook Pro M3 Max 16" - 64 GB/4TB/ AJÁNDÉK MAGIC KEYBOARD 3/ 27% ÁFÁS!
- GYÖNYÖRŰ iPhone X 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3586
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi




