Экспорт (0) Печать
Развернуть все
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

ThreadLocal<T> - класс

Предоставляет хранилище для данных, локальных для потока.

Пространство имен:  System.Threading
Сборка:  mscorlib (в mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public class ThreadLocal<T> : IDisposable

Параметры типа

T

Задает тип данных, хранимых для каждого потока.

Тип ThreadLocal<T> предоставляет следующие члены.

  ИмяОписание
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsThreadLocal<T>()Инициализирует экземпляр ThreadLocal<T>.
Открытый методПоддерживается в Приложения .NET для Магазина WindowsThreadLocal<T>(Boolean)Инициализирует экземпляр ThreadLocal<T>.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsThreadLocal<T>(Func<T>)Инициализирует экземпляр ThreadLocal<T> с заданной функцией valueFactory.
Открытый методПоддерживается в Приложения .NET для Магазина WindowsThreadLocal<T>(Func<T>, Boolean)Инициализирует экземпляр ThreadLocal<T> с заданной функцией valueFactory.
В начало страницы

  ИмяОписание
Открытое свойствоПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsIsValueCreatedПолучает значение, указывающее, инициализирован ли объект Value в текущем потоке.
Открытое свойствоПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsValueПолучает или задает значение данного экземпляра для текущего потока.
Открытое свойствоПоддерживается в Приложения .NET для Магазина WindowsValuesПолучает список всех значений, хранящихся в настоящий момент всеми потоками, которые получили доступа к данному экземпляру.
В начало страницы

  ИмяОписание
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsDispose()Освобождает все ресурсы, используемые текущим экземпляром класса ThreadLocal<T>.
Защищенный методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsDispose(Boolean)Освобождает ресурсы, используемые данным экземпляром ThreadLocal<T>.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsEquals(Object)Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.)
Защищенный методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsFinalizeОсвобождает ресурсы, используемые данным экземпляром ThreadLocal<T>. (Переопределяет Object.Finalize().)
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsGetHashCode Играет роль хэш-функции для определённого типа.
(Унаследовано от Object.)
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsGetTypeВозвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Защищенный методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsMemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в Приложения .NET для Магазина WindowsToStringСоздает и возвращает строковое представление данного экземпляра для текущего потока. (Переопределяет Object.ToString().)
В начало страницы

ПримечаниеПримечание

Атрибут HostProtectionAttribute примененный к данному типу или члену, имеет следующее значение свойства Resources : Synchronization | ExternalThreading. Атрибут HostProtectionAttribute не оказывает влияния на классические приложения (обычно запускаемые двойным щелчком значка, вводом команды или URL-адреса в браузере). Дополнительные сведения см. в разделе HostProtectionAttribute или программирование SQL Server и атрибуты защиты основного приложения.

В следующем примере показано использование ThreadLocal<T>.


using System;
using System.Threading;
using System.Threading.Tasks;

class ThreadLocalDemo
{

        // Demonstrates:
        //      ThreadLocal(T) constructor
        //      ThreadLocal(T).Value
        //      One usage of ThreadLocal(T)
        static void Main()
        {
            // Thread-Local variable that yields a name for a thread
            ThreadLocal<string> ThreadName = new ThreadLocal<string>(() =>
            {
                return "Thread" + Thread.CurrentThread.ManagedThreadId;
            });

            // Action that prints out ThreadName for the current thread
            Action action = () =>
            {
                // If ThreadName.IsValueCreated is true, it means that we are not the
                // first action to run on this thread.
                bool repeat = ThreadName.IsValueCreated;

                Console.WriteLine("ThreadName = {0} {1}", ThreadName.Value, repeat ? "(repeat)" : "");
            };

            // Launch eight of them.  On 4 cores or less, you should see some repeat ThreadNames
            Parallel.Invoke(action, action, action, action, action, action, action, action);

            // Dispose when you are done
            ThreadName.Dispose();
        }
}



.NET Framework

Поддерживается в версиях: 4.5, 4

.NET Framework (клиентский профиль)

Поддерживается в версии: 4

Переносимая библиотека классов

Поддерживается в версии: Переносимая библиотека классов

Приложения .NET для Магазина Windows

Поддерживается в версии: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

Среда .NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

За исключением Dispose все открытые и защищенные члены ThreadLocal<T> являются потокобезопасными и могут использоваться параллельно из нескольких потоков. Значение, возвращаемое для свойств Value и IsValueCreated, относится к конкретному потоку, в котором осуществляется обращение к свойству.

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft