Hirdetés

2024. április 26., péntek

Gyorskeresés

Hozzászólások

(#1) Cucuska2


Cucuska2
őstag

és ha a szál leállítása helyett üres adatokat adsz neki?

És a videóról: mit értesz az alatt, hogy 'védés'?

Rock and stone, to the bone! Leave no dwarf behind!

(#2) Elrood válasza Cucuska2 (#1) üzenetére


Elrood
őstag

Záróvizsgán kérdéseket tesznek fel a szakdogával kapcsolatban, elő kell adnod, beszélned kell róla, ezt hívják védésnek. Elvileg itt kéne kiderülnie, hogy te csináltad vagy sem.

Szál:
Az nem jó, mert magától működik. Az a baj, hogy gyakorlatilag van két szál, az a szál, amit le akarok állítani abban van egy while ciklus. Ami leállítja, megváltoztat egy változót, amitől a while ciklusból ki kéne lépjen a másik. A leállító pedig türelmesen vár, hogy véget érjen a másik, de soha nem ér véget, soha nem jön ki abból a ciklusból, pedig azon belül nincs újabb ciklus. (Erőszakosan nem állíthatom le, mert memory leak keletkezne.)

Más részeken is ezt használtam semmi baja nem volt tőle. A csütörtöktől kezdve nem sokat aludtam, hogy kész legyek, lehet elkövettem valamit ami most nem tűnik fel. A másik ötletem, hogy már annyi szál dolgozik, lehet, hogy belekavarodott az egész.

Úgy is még át kell dolgoznom, mert a videó kedvéért csak össze van hányva az egész, ilyet nem adnék be soha:).

[ Szerkesztve ]

''The spice exists on only one planet in the entire universe. A desolate, dry planet with vast deserts. The planet is Arrakis, also known as DUNE.''

(#3) Elrood válasza Elrood (#2) üzenetére


Elrood
őstag

Sikerült rájönni a szálfagyásra.

Akkor jön elő, ha a program főablakába sok üzenetet írok ki és jelzem a szállnak, hogy leállhat. A főszálban WaitForSingleObject() függvényhez jut, ezzel várom meg, hogy véget érjen a mellékszál, de a mellékszál eközben emiatt a függvény miatt megáll, ezért véget érni se tud. A várakozás végtelenre volt állítva, emiatt befagyott minden.

Két megoldás van erre:
1. Minél ritkábban írok ki üzeneteket a főablakba, hátha nem akad meg.
2. WaitForSingleObject() várakozását nem végtelenre teszem, hanem néhány másodpercre. Ha megakad a mellékszál, a beállított idő múlva a főszál befejezi a várakozást és továbblép, és a mellékszál folytatja a futást, majd le tud állni.

Nem 100%-s megoldás, de ez a két megoldás nem okoz problémát a programomban, ezért minden végtelen várakozást, amit gomboknál használtam átállítottam.
Inkább legyen egy fault mint teljes fagyás, mert a teljesen befagyott programot nagyon nehéz kilőni.

A projekthez annyit, hogy lehet már nem készül újabb poszt jó sokáig, mert úgy néz ki újabb funkcióval nem fog bővülni a program, max. néhány látványi dologgal (ezeket kirakom még), mert november közepén megint demonstrátor leszek pár napig.

A videókat, meg egy esetleges cikket pontosabban leírva mindezt kicsit mély víz szerűen megfogalmazva majd február körül várható.

[ Szerkesztve ]

''The spice exists on only one planet in the entire universe. A desolate, dry planet with vast deserts. The planet is Arrakis, also known as DUNE.''

Copyright © 2000-2024 PROHARDVER Informatikai Kft.