Kérdés # 6119 ... kérjük, töltse ki az áramlás működés közben, amikor a szerszámot lezárjuk

Üdvözlünk!
Kérem, mondja, hogyan kell befejezni a áramlását a működés során, amikor a forma zárva van.

Arra a kérdésre csatolt fájlt. Letöltés „(eltarthatóság: 60 napon a kérdés)

Szia, Shouldercannon!
Kétféle módon - a helyes kitöltésére és a befejezése egy perverzió. A második módszer magában megöli az áramlás, de megölni „vadul”, és nincs garancia arra, hogy a fő program fogja túlélni. Ezért ez a módszer nem ajánlott. (Úgy néz ki)

A helyes út az, hogy a patak kell neki teljes önmagát. Ehhez delfovskoy végrehajtása áramlások Lezárt dobozban. Menet Alkalmanként ellenőrizd a területen igaz, és ha igen, akkor ki kell töltenie a dolgát (általában - csak tisztítsák meg a források, ami kilép).

És azok, akiknek szükségük van rá, hogy ne folyhasson, csak okoz. De nincs garancia arra, hogy az áramlás egyszer elkészült (stream még mindig el kell érniük, ellenőrizze állapotát, befejezett). Ha azt szeretnénk, hogy várjon a befejezése az áramlás, így írunk
De meg kell értenünk, hogy waitfor - blokkoló működését és lassítja a felület (de ha az áramlás gyorsan befejeződik, nem probléma).

kiadja mini-fórum

Előnyösen a megfelelő következtetés.
Ismét tazha hiba. Valami, amit nem fogadott, de mit?

Kiállítva DownLoader_Thread.FreeOnTerminate: = True;. majd hívja a destruktor már nincs szükség a menet. Mivel Delphi maga fog okozni önnek. És mivel van egy hívás waitfor, akkor mire hívja a destruktor, akkor lehet nevezni.

Ezen kívül van egy szép jellegét. Ha a FreeOnTerminate: = Igaz, a OnTerminate szál hívják keretében az áramlás. Ha hamis, akkor keretében a menet, ami miatt a szabad.

Tick ​​„olvasható megerősítés” - egyetemes rossz.