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