Pekny den panove, resim problem s aplikaci kde se vytvari stale vlakna a neceka se na jejich ukonceni. Ukazka nize
while (true)
{
Thread tH = new Thread(new ParameterizedThreadStart(runTh));
dThread.setNameOfItem("test"+i.ToString());
tH.IsBackground = true;
tH.Start((object)dThread);
Thread.Sleep(5000);
}
kde dThread je classa, ktera nese data predavana vlaknu(-m). Ve vlakne se provede nejaka operace a melo by se ukoncit.
static void runTh(object value)
{
dataToThread dThr = (dataToThread)value;
Console.WriteLine(dThr.getFileName());
TextWriter tWriter = new StreamWriter("pokus.txt",false);
tWriter.Write(dThr.getNameOfItem());
tWriter.Close();
}
Otazka zni zda je takove reseni ciste. Tzn myslenka je takova, ze se vlakno samo ukonci a uvolni pote prostedky v RAM, ktere zabiralo. Ale v tom si prave nejsem jisty. A nechtel bych vytvorit aplikaci, ktera v ostrem provozu zbori system diky zahlceni pameti.
|