*   >> Lezen Onderwijs artikelen >> science >> programming

Threading in dot net 2.0 - afzonderlijk exemplaar van statische variabele tussen de verschillende discussies met ThreadStatic attribute

Windows basiseenheid van de uitvoering is een draad. Dat betekent WIN geen processen uit te voeren; In plaats daarvan voert discussies. Threads zijn codereeksen die draaien multitasked op individuele stapels. Een thread heeft zijn eigen reeks van code, die wordt uitgevoerd in een gelijktijdige manier. Dus discussies helpen ons gelijktijdige verwerking te bereiken. WIN Scheduler bestuurt de uitvoering van alle draden die in een systeem. In WIN, elke thread zijn eigen prioriteit, genummerd van 0 tot 31, op basis waarvan plant de uitvoering van elke draad WIN.

Hoe hoger de prioriteit getal, hoe hoger de prioriteit thread. Een proces kan een enkele draad of meerdere threads te hebben. Eén proces minimaal één draad hebben. Processen kunnen paaien draden en kan draden te beëindigen

Hieronder programma laat zien hoe elke draad houdt een apart exemplaar van dezelfde statische variabele met ThreadStatic attribuut

using System;.

met System. Collections.Generic;

met System.Text;

met System.

Threading;

namespace Thread_Programming

{

class ThreadStaticProgram

{

[ThreadStatic]

statische reeks threadStaticVariable = "";

static void Main (string [] args)

{

Console.WriteLine ("rode draad Voor {0}", threadStaticVariable);

threadStaticVariable = "rode draad";

Console.WriteLine ("rode draad Voor Voor lus = {0} ", threadStaticVariable);

Discussie [] = nieuwe discussies Discussie [3];

for (int i = 0; i

​​{

discussies [i] = nieuwe Thread (delegate (object j) {

Console.

WriteLine ("Thread {0} voordat = {1}", j, threadStaticVariable);

threadStaticVariable = "Reageer" + j;

Console.WriteLine ("Thread {0} na = {1}", j, threadStaticVariable);

}

);

discussies [i] .start (i);

}

Array.ForEach (threads, afgevaardigde (Draad t) {t.Join (); });

Console.WriteLine ("rode draad na Voor Loop = {0}", threadStaticVariable);

Console.

ReadLine ();

}

}

}

Resultaat op Console Screen:

rode draad Voordat

rode draad Voordat Voor Loop = rode draad

Thread0 voordat =

thread1 voordat =

thread1 na = thread1

Thread0 na = Thread0

thread2 voordat =

thread2 na = thread2

rode draad na Voor Loop = draad


Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.