de Windows unité d'exécution de base est un fil. Cela signifie que WIN ne pas exécuter les processus; à la place, il exécute les discussions. Threads sont des séquences de code qui exécutent multitâche sur piles individuelles. Un thread a sa propre séquence de code, qui est exécuté d'une manière simultanée. Donc, les discussions nous aident à atteindre le traitement simultané. WIN Scheduler contrôle l'exécution de tous les threads dans un système.
Dans WIN, chaque thread a sa propre priorité, numérotés de 0 à 31, sur la base duquel GAGNER horaires à l'exécution de chaque thread. Plus le nombre de priorité élevé, plus la priorité du fil. Un processus peut avoir un seul thread ou plusieurs threads. Un seul processus doit avoir un minimum d'un fil. Les processus peuvent engendrer des fils et peuvent résilier les discussions
Ci-dessous programme montre comment chaque thread conserve une copie distincte de même variable statique à l'aide ThreadStatic attribut
using System;.
using System. Collections.
Generic;
using System.Text;
utilisant System.Threading;
namespace Thread_Programming
{
classe ThreadStaticProgram
{
[] ThreadStatic
static string threadStaticVariable = "";
static void main (String [] args)
{
Console.WriteLine ("thread principal Avant {0}", threadStaticVariable);
threadStaticVariable = "thread principal";
Console.
WriteLine ("thread principal Avant Pour loop = {0} ", threadStaticVariable);
Discussion [] threads = new Thread [3];
for (int i = 0; i
{
fils [i] = new Thread (délégué (objet j) {
Console.WriteLine ("Thread {0} avant = {1}", j, threadStaticVariable);
threadStaticVariable = "fil" + j;
Console.WriteLine ("Thread {0} après = {1}", j, threadStaticVariable);
}
);
fils [i] .Start (i);
}
Array.ForEach (fils, délégué (filetage t) {t.Join (); });
Console.
WriteLine ("thread principal après boucle For = {0}", threadStaticVariable);
Console.ReadLine ();
}
}
}
résultat à l'écran de la console:
thread principal Avant
thread principal Avant de boucle For = thread principal
Thread0 avant
=
Thread1 avant
=
Thread1 après = Thread1
Thread0 après = Thread0
Thread2 avant
=
Thread2