Hoofdstuk 7 - Les 1
Een thread is een apart onderdeel dat wordt uitgevoerd binnen een proces. Een proces kan meerdere threads bevatten. Dit wort ook wel multithreading genoemd.
Met de System.Threading.ThreadPool class kunnen methods op de achtergrond worden uitgevoerd:
De main applicatie wordt beschouwd als de foreground thread. Threads die aangemaakt worden in de code worde background threads genoemd. Background threads stoppen zodra de foreground thread wordt afgebroken. Met de Thread.CurrentThread.IsBackground property kan de foreground gecheckt worden.
Met de System.Threading.ThreadPool class kunnen methods op de achtergrond worden uitgevoerd:
Standaard heeft de thread pool 250 threads beschikbaar per processor. Dit kan aangepast worden met de ThreadPool.SetMaxThreads methode. Nadat een thread is uitgevoerd, wordt hij weer vrijgegeven. Het aantal beschikbare threads kan opgevraagd worden met de ThreadPool.GetAvailableThreads methode.static void Main(string[] args)
{
string value = "Dit is de inhoud van string value";
// Zet de taak in de wacht
ThreadPool.QueueUserWorkItem(ThreadProc, value);
Console.WriteLine("Main thread doet wat dingen...");
Thread.Sleep(1000);
Console.WriteLine("Main thread stopt");
}
static void ThreadProc(object stateInfo)
{
string param = (string) stateInfo;
Console.WriteLine("Live vanuit een thread! " + param);
}
De main applicatie wordt beschouwd als de foreground thread. Threads die aangemaakt worden in de code worde background threads genoemd. Background threads stoppen zodra de foreground thread wordt afgebroken. Met de Thread.CurrentThread.IsBackground property kan de foreground gecheckt worden.
Reacties
Een reactie posten