Hirdetés

Új hozzászólás Aktív témák

  • 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!

  • Elrood

    őstag

    válasz Cucuska2 #1 üzenetére

    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.''

  • Elrood

    őstag

    válasz Elrood #2 üzenetére

    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.''

Új hozzászólás Aktív témák