unidade básica de execução do Windows é um fio. Isso significa que a WIN não executar processos; em vez disso, ele executa threads. Threads são sequências de código que executam multitasked em pilhas individuais. Um segmento tem sua própria seqüência de código, que é executado de forma simultânea. Então tópicos nos ajudar a alcançar o processamento concorrente. WIN Scheduler controla a execução de todas as threads em execução em um sistema. Em WIN, cada segmento tem sua própria prioridade, numeradas de 0 a 31, com base no qual GANHAR agenda a execução de cada segmento.
Quanto maior o número de prioridade, a prioridade mais elevada do segmento. Um processo pode ter um único segmento ou vários segmentos. Um único processo tem de ter um mínimo de um segmento. Os processos podem gerar threads e pode terminar tópicos
Abaixo Programa mostra como cada thread mantém uma cópia separada do mesmo variável estática usando ThreadStatic atribuem
using System;.
using System. Collections.Generic;
usando System.Text;
using System.
Threading;
namespace Thread_Programming
{
classe ThreadStaticProgram
{
[ThreadStatic]
estático seqüência threadStaticVariable = "";
Principais void (string [] args) estáticos
{
Console.WriteLine ("thread principal Antes {0}", threadStaticVariable);
threadStaticVariable = "Thread principal";
Console.
WriteLine ("thread principal Antes Para loop = {0} ", threadStaticVariable);
Tópico [] = new Thread tópicos [3];
for (int i = 0; i
{
tópicos [i] = new Thread (delegado (objeto j) {
Console.WriteLine ("Thread {0} antes = {1}", j, threadStaticVariable);
threadStaticVariable = "Thread" + j;
Console.WriteLine ("Thread {0} depois = {1}", j, threadStaticVariable);
}
);
tópicos [i] .Start (i);
}
Array.ForEach (threads, delegado (Linha t) {t.Join (); });
Console.
WriteLine ("thread principal depois de For Loop = {0}", threadStaticVariable);
Console.ReadLine ();
}
}
}
Resultado em Console Tela:
thread principal Antes
thread principal Antes For Loop = thread principal
Thread0 antes =
Thread1 antes =
Thread1 após = Thread1
Thread0 após = Thread0
Thread2 antes =
Thread2 depois = Thread2