Prace s vlakny sleep/interrupt – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prace s vlakny sleep/interrupt – .NET – Fórum – Programujte.comPrace s vlakny sleep/interrupt – .NET – Fórum – Programujte.com

 

rybar730
Newbie
12. 8. 2008   #1
-
0
-

Bry den. Mam takovy mensi problem. Potrebuji v programu pracovat s vice vlakny. Jeden pridava vlakna do zasobniku a druhe vlakno ma data zpracovavat. Puvodne jsem to mel reseno pres rekurzivni volani s casovym spozdenim ale chtel jsem to vyresit nejak sikovneji tak se snazim implementovat praci s vlakny(diky clankum na programujte :-) zatim neuspesne.

takze mam to asi takto

Thread startuju jiz v konstruktoru...



(tento kod jiz pracuje korektne)
private void button3_Click(object sender, EventArgs e)
{
...
UkladaciF.Enqueue(zaznam);
ukladaci.Interrupt();
}

//vlakno spracovavajici data
public void ukladaniKrypton()
{
while(true)
{
while (UkladaciF.Count != 0)
{
//zparcuje data
}

try
{
Thread.Sleep(Timeout.Infinite);
}
catch
{

}
}
}


Problem je ze vlakno mi probudi jen jednou a pak uz ne(i kdyz i podruhe hlasi ukladaci.ThreadState = WaitSleepJoin).
Diky za radu nebo nejaky jiny navrh jak se tato situace resi :-)

!!!OMLOUVAM SE VYRESENO!!!
Puvodne jsem po zachycenui vyjimky dal znova zavolani 'ukladaniKrypton()' a to jiz neprobudil. Jakmile jsem pouzil while(true) tak jiz beha korektne. Jeste jednou se omlouvam za SPAM
btw.pokud by nekdo znal jine lepsi reseni rad si ho poslechnu :-)

S pozdravem rybar73

Nahlásit jako SPAM
IP: 194.197.79.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Projekt s vlákny — založil Deyv

Problém s vlákny — založil GoliathL

Peklo s vlákny — založil Sefiros

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý