*   >> Чтение Образование Статьи >> science >> programming

Заправка в Dot Net 2.0 - отдельной копии статической переменной между различными потоками с использованием ThreadStatic атрибут

<р> Окна основная единица исполнения является нить. Это означает, что WIN не выполнять процессы; Вместо этого, он выполняет темы. Потоки кодовые последовательности, которые работают на отдельных multitasked стеков. Поток имеет свой собственный последовательность кода, который запускается на выполнение в параллельном моды. Так темы поможет нам достичь параллельной обработки. WIN Планировщик контролирует выполнение всех потоков, выполняющихся в системе.

В WIN, каждая нить имеет свой собственный приоритет, пронумерованных от 0 до 31, на основании которого выиграть графики выполнения каждого потока. Чем выше приоритет номер, тем выше приоритет потока. Процесс может иметь один или несколько нить темы. Один процесс должен иметь как минимум один поток. Процессы могут появляться темы, и может прекратить темы

<р> Ниже программе показывает, как каждый поток сохраняет отдельную копию же статической переменной с использованием атрибутов

<р> ThreadStatic использованием системы;.

<Р> с помощью системы. Collections.

Generic;

<р> с помощью System.Text;

<р> с помощью System.Threading;

<р> пространство имен Thread_Programming

<р> {

<р> класс ThreadStaticProgram < ш> <р> {

<р> [] ThreadStatic

<р> статическая строка threadStaticVariable = "";

<р> статической силы (String [] аргументы) Основные

<р> {

<р> Console.WriteLine ("Главный поток Перед {0}", threadStaticVariable);

threadStaticVariable = "основной поток";

Console.

WriteLine ("Основной поток прежде для Цикл = {0} ", threadStaticVariable);

<р> Тема [] = темы Новую тему [3];

<р> для (INT I = 0; я <р> {

<р > темы [я] = новый тема (делегат (объект J) {

<р> Console.WriteLine ("Поток {0}, = {1}", J, threadStaticVariable);

<р> = threadStaticVariable "Тема" + J;

<р> Console.WriteLine ("Поток {0} после = {1}", J, threadStaticVariable);

<р>}

<р>);

темы [я] .start (я);

<р>}

<р> Array.ForEach (темы, делегат (Тема т) {t.Join (); });

<Р> Console.

WriteLine ("Главный поток после цикл по = {0}", threadStaticVariable);

<р> Console.ReadLine ();

<р>}

<р>}

<р>}

<р> Результат на консоли Экран:

<р> Главная тема Перед

<р> Главная тема Перед Для Loop = Main

темы <р > Thread0, прежде чем =

Резьба1 до =

Резьба1 после = Резьба1

Thread0 после = Thread0

Резьба2 до =

Резьба2 после = Резьба2

<р> Главная тема после Loop Для

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.