Tråde og indkapsling
Hej igen,Jeg sidder med en applikation som starter en tråd op som udfører arbejde i baggrunden. Desuden er der flere steder rundt omkring i min applikation som bruger tråde til at tilgå forskellige ting. Jeg starter min tråd og lukker den igen når den er færdig, ingen hokus pokus. Men hvis brugeren lukker min applikation ned inden min tråd er færdig, så kører processen videre (hænger). Indtil videre har jeg lavet en collection af Thread objectet i en statisk klasse som jeg så løber igennem og lukker alle de tråde der måtte køre, ved nedlukning af applikation, findes der en smartere måde?
I mangel på en smartere måde til ovenstående har jeg besluttet mig for at lave et dedikeret objekt til trådhåndtering : en "ThreadDispenser":
public class ThreadDispenser
{
private List<Thread> threads;
public ThreadDispenser()
{
threads = new List<Thread>();
}
public Thread GetThread(object target)
{
Thread result = new Thread(new ThreadStart(target));
threads.Add(result);
return result;
}
men hvordan dælen kan man lave parametern til ThreadStart som parameter i GetThread klassen, object er en forkert datatype ?? hvad er datatypen for en metode?