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:

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);
}
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.

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

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren