Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Hazar
Kreisi kasutaja

liitunud: 24.08.2004
|
30.07.2010 17:08:45
Probleem threadidega remote protsessis (c++) |
|
|
Hiljuti sain jälile probleemile mis mind pikalt kummitanud, nimelt üks funktsioon on istutatud teise protsessi ning seda aktiveerin createremotethread abil mis jookseb koodi läbi, teeb vajalikud asjad ning kaob. Probleem siis selles, et kuigi host protsessist tulevad käsud õiges järjekorras jääb vahetevahel üks neist spawnitud threadidest millisekundi hiljaks oma toimingu lõpetamisega ning kui käsud tulevad suure kiirusega tehakse asju vales järjekorras = kaput. Mõtlesin siis, et vbl oleks kõige lihtsam tekitada üks tukkuv thread funktsiooni istutamise jooksul mis muidu cpu'd ei raiska, kuid peab reageerima ülikähku kui uus käsk saabub (nt siis host protsessi poolt ülekirjutatav muutuja päästikuks), sellega saaks garanteerida et ükski toiming ei torma teistest ette. Proovisin siis igat pidi nii nagu oskasin, kuid tulemiseks on see, et kas see tukkuv thread on liiga uimane või imeb cpud üleliia. Soovitusi?
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
28 |
|
tagasi üles |
|
 |
mark11
HV vaatleja
liitunud: 28.01.2006
|
30.07.2010 20:29:16
|
|
|
ei saa probleemist täpselt aru kuid kui tahad, et enne esimene thread oma asjad ära teeb siis kasuta WaitForSingleObject() koos INFINITE parameetriga.
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
Hazar
Kreisi kasutaja

liitunud: 24.08.2004
|
30.07.2010 20:55:43
|
|
|
waitforsingleobject interopina callides võtab liiga kaua aega (vahetevahel sekund+) kuigi thread on ammu töö lõpetanud
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
28 |
|
tagasi üles |
|
 |
Ho Ho
HV Guru

liitunud: 16.02.2002
|
03.08.2010 11:34:24
|
|
|
Kui on sünkroniseerida tarvis siis ikka ilma mutexite-lockide ja muu juurde kuuluvata eriti lihtsalt ei saa. Lihtsalt luua ports threade ja loota, et need õigeks ajaks valmis saavad on naiivne ning tekitab ainult vigu.
Võibolla peaksid laskma tollel taustal tööd tegeval threadil mingit sorti signaali saatma põhi threadile mis ei jätkaks tööd enne, kui see signaal käes? Samas peaks selle töö ära tegema ka waitforsingleobject kuid kui sul võib olla taustal rohkem, kui üks säärane thread siis pead veidi kavalamalt tegema.
_________________ Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity" |
|
Kommentaarid: 106 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
86 |
|
tagasi üles |
|
 |
Hazar
Kreisi kasutaja

liitunud: 24.08.2004
|
15.08.2010 06:06:05
|
|
|
Ho Ho kirjutas: |
Võibolla peaksid laskma tollel taustal tööd tegeval threadil mingit sorti signaali saatma põhi threadile mis ei jätkaks tööd enne, kui see signaal käes? |
Nii tegingi, kartsin, et nii edasi/tagasi kinnitamine teeb jõudlusele otsa peale, kuid wmessage päris käbe 2% läks kaotsi ainult ja enam ei streigi.
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
28 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|