System windows threading assembly

Thread Конструкторы

Определение

Инициализирует новый экземпляр класса Thread. Initializes a new instance of the Thread class.

Перегрузки

Инициализирует новый экземпляр класса Thread, при этом указывается делегат, позволяющий объекту быть переданным в поток при запуске потока. Initializes a new instance of the Thread class, specifying a delegate that allows an object to be passed to the thread when the thread is started.

Инициализирует новый экземпляр класса Thread. Initializes a new instance of the Thread class.

Инициализирует новый экземпляр класса Thread, при этом указывается делегат, позволяющий объекту быть переданным в поток при запуске потока с указанием максимального размера стека для потока. Initializes a new instance of the Thread class, specifying a delegate that allows an object to be passed to the thread when the thread is started and specifying the maximum stack size for the thread.

Инициализирует новый экземпляр класса Thread, указывая максимальный размер стека для потока. Initializes a new instance of the Thread class, specifying the maximum stack size for the thread.

Thread(ParameterizedThreadStart)

Инициализирует новый экземпляр класса Thread, при этом указывается делегат, позволяющий объекту быть переданным в поток при запуске потока. Initializes a new instance of the Thread class, specifying a delegate that allows an object to be passed to the thread when the thread is started.

Параметры

Делегат, указывающий на методы, которые вызываются при запуске потока. A delegate that represents the methods to be invoked when this thread begins executing.

Исключения

start имеет значение null . start is null .

Примеры

В следующем примере показан синтаксис для создания и использования ParameterizedThreadStart делегата с статическим методом и методом экземпляра. The following example shows the syntax for creating and using a ParameterizedThreadStart delegate with a static method and an instance method.

Комментарии

Поток не начинает выполняться при его создании. A thread does not begin executing when it is created. Чтобы запланировать выполнение потока, вызовите Start метод. To schedule the thread for execution, call the Start method. Чтобы передать объект данных в поток, используйте Start(Object) перегрузку метода. To pass a data object to the thread, use the Start(Object) method overload.

Visual Basic пользователи могут опустить ThreadStart конструктор при создании потока. Visual Basic users can omit the ThreadStart constructor when creating a thread. Используйте AddressOf оператор при передаче метода, например Dim t As New Thread(AddressOf ThreadProc) . Use the AddressOf operator when passing your method, for example Dim t As New Thread(AddressOf ThreadProc) . Visual Basic автоматически вызывает ThreadStart конструктор. Visual Basic automatically calls the ThreadStart constructor.

См. также раздел

Применяется к

Thread(ThreadStart)

Инициализирует новый экземпляр класса Thread. Initializes a new instance of the Thread class.

Параметры

Делегат ThreadStart, указывающий на методы, которые вызываются при запуске потока. A ThreadStart delegate that represents the methods to be invoked when this thread begins executing.

Исключения

Параметр start имеет значение null . The start parameter is null .

Примеры

В следующем примере кода показано, как создать поток, выполняющий статический метод. The following code example shows how to create a thread that executes a static method.

В следующем примере кода показано, как создать поток, выполняющий метод экземпляра. The following code example shows how to create a thread that executes an instance method.

Комментарии

Поток не начинает выполняться при его создании. A thread does not begin executing when it is created. Чтобы запланировать выполнение потока, вызовите Start метод. To schedule the thread for execution, call the Start method.

Visual Basic пользователи могут опустить ThreadStart конструктор при создании потока. Visual Basic users can omit the ThreadStart constructor when creating a thread. Используйте AddressOf оператор при передаче метода Dim t As New Thread(AddressOf ThreadProc) , например. Use the AddressOf operator when passing your method for example Dim t As New Thread(AddressOf ThreadProc) . Visual Basic автоматически вызывает ThreadStart конструктор. Visual Basic automatically calls the ThreadStart constructor.

См. также раздел

Применяется к

Thread(ParameterizedThreadStart, Int32)

Инициализирует новый экземпляр класса Thread, при этом указывается делегат, позволяющий объекту быть переданным в поток при запуске потока с указанием максимального размера стека для потока. Initializes a new instance of the Thread class, specifying a delegate that allows an object to be passed to the thread when the thread is started and specifying the maximum stack size for the thread.

Параметры

Делегат ParameterizedThreadStart, указывающий на методы, которые вызываются при запуске потока. A ParameterizedThreadStart delegate that represents the methods to be invoked when this thread begins executing.

Максимальный размер стека в байтах, используемый потоком, или же 0 для использования максимального размера по умолчанию, указывается в заголовке исполняемого файла. The maximum stack size, in bytes, to be used by the thread, or 0 to use the default maximum stack size specified in the header for the executable.

Внимание! Для частично доверенного кода значение параметра maxStackSize игнорируется, если оно превышает размер стека по умолчанию. Important For partially trusted code, maxStackSize is ignored if it is greater than the default stack size. Исключение не возникает. No exception is thrown.

Исключения

start имеет значение null . start is null .

Значение параметра maxStackSize меньше нуля. maxStackSize is less than zero.

Комментарии

Старайтесь не использовать эту перегрузку конструктора. Avoid using this constructor overload. Размер стека по умолчанию, используемый Thread(ParameterizedThreadStart) перегрузкой конструктора, является рекомендуемым размером стека для потоков. The default stack size used by the Thread(ParameterizedThreadStart) constructor overload is the recommended stack size for threads. Если в потоке имеются проблемы с памятью, наиболее вероятной причиной является ошибка программирования, например бесконечная рекурсия. If a thread has memory problems, the most likely cause is programming error, such as infinite recursion.

Начиная с платформа .NET Framework 4, только полностью доверенный код может установить maxStackSize значение, превышающее размер стека по умолчанию (1 МБ). Beginning with the .NET Framework 4, only fully trusted code can set maxStackSize to a value that is greater than the default stack size (1 megabyte). Если maxStackSize при выполнении кода с частичным доверием указано большее значение, maxStackSize то игнорируется и используется размер стека по умолчанию. If a larger value is specified for maxStackSize when code is running with partial trust, maxStackSize is ignored and the default stack size is used. Исключение не выдается. No exception is thrown. Код на любом уровне доверия может иметь maxStackSize значение, меньшее, чем размер стека по умолчанию. Code at any trust level can set maxStackSize to a value that is less than the default stack size.

Читайте также:  Шутки с рабочим столом windows

Если вы разрабатываете полностью доверенную библиотеку, которая будет использоваться частично доверенным кодом, и вам нужно запустить поток, требующий большого стека, перед созданием потока необходимо подтвердить полное доверие, иначе будет использоваться размер стека по умолчанию. If you are developing a fully trusted library that will be used by partially trusted code, and you need to start a thread that requires a large stack, you must assert full trust before creating the thread, or the default stack size will be used. Не выполняя это действие, если не полностью контролируется код, выполняемый в потоке. Do not do this unless you fully control the code that runs on the thread.

Если maxStackSize меньше минимального размера стека, используется минимальный размер стека. If maxStackSize is less than the minimum stack size, the minimum stack size is used. Если maxStackSize параметр не кратен размеру страницы, он округляется до следующего большего размера, кратного размеру страницы. If maxStackSize is not a multiple of the page size, it is rounded to the next larger multiple of the page size. Например, если вы используете платформа .NET Framework версии 2,0 в Windows Vista, минимальный размер стека (262 144 байт) — 64 КБ (65 536 байт). For example, if you are using the .NET Framework version 2.0 on Windows Vista, 256KB (262,144 bytes) is the minimum stack size, and the page size is 64KB (65,536 bytes).

В версиях Microsoft Windows, предшествовавших Windows XP и Windows Server 2003, maxStackSize игнорируется, и используется размер стека, указанный в заголовке исполняемого файла. On versions of Microsoft Windows prior to Windows XP and Windows Server 2003, maxStackSize is ignored, and the stack size specified in the executable header is used.

Если указан очень малый размер стека, может потребоваться отключить проверку переполнения стека. If you specify a very small stack size, you might need to disable stack-overflow probing. Если стек сильно ограничен, проверка может привести к переполнению стека. When the stack is severely constrained, the probing can itself cause a stack overflow. Чтобы отключить проверку переполнения стека, добавьте следующий фрагмент в файл конфигурации приложения. To disable stack overflow probing, add the following to your application configuration file.

System. Windows. Threading Пространство имен

Содержит типы для поддержки системы работы с потоками Windows Presentation Foundation (WPF). Contains types to support the Windows Presentation Foundation (WPF) threading system.

Классы

Предоставляет службы для управления очередью рабочих элементов для потока. Provides services for managing the queue of work items for a thread.

Предоставляет данные для событий, связанных с Dispatcher. Provides event data for Dispatcher related events.

Предоставляет набор методов static , которые расширяют класс Dispatcher. Provides a set of static methods that extend the Dispatcher class.

Представляет цикл выполнения в Dispatcher. Represents an execution loop in the Dispatcher.

Предоставляет данные для событий DispatcherHooks. Provides event data for DispatcherHooks events.

Предоставляет дополнительные сведения о работе Dispatcher. Provides additional event information about Dispatcher processing.

Представляет объект, связанный с объектом Dispatcher. Represents an object that is associated with a Dispatcher.

Представляет объект, используемый для взаимодействия с операцией, помещенной в очередь объекта Dispatcher. Represents an object that is used to interact with an operation that has been posted to the Dispatcher queue.

Представляет объект, используемый для взаимодействия с операцией, помещенной в очередь Dispatcher, и содержит Task . Represents an object that is used to interact with an operation that has been posted to the Dispatcher queue and contains a Task .

Предоставляет контекст синхронизации для Windows Presentation Foundation (WPF). Provides a synchronization context for Windows Presentation Foundation (WPF).

Таймер, интегрированный в очередь Dispatcher, обрабатываемый с заданным интервалом времени и заданным приоритетом. A timer that is integrated into the Dispatcher queue which is processed at a specified interval of time and at a specified priority.

Предоставляет данные для события DispatcherUnhandledException. Provides data for the DispatcherUnhandledException event.

Предоставляет набор методов static , которые расширяют класс Task. Provides a set of static methods that extend the Task class.

Структуры

Представляет объект типа awaitable, который асинхронно направляет элемент управления обратно текущему диспетчеру и предоставляет диспетчеру возможность обработки других событий. Represents an awaitable object that asynchronously yields control back to the current dispatcher and provides an opportunity for the dispatcher to process other events.

Предоставляет объект, который ожидает завершения асинхронной задачи. Represents an object that waits for the completion of an asynchronous task.

Представляет объект Dispatcher, когда он отличен, и предоставляет средства для его повторного включения. Represents the Dispatcher when it is in a disable state and provides a means to re-enable dispatcher processing.

Перечисления

Описывает возможные значения состояния DispatcherOperation. Describes the possible values for the status of a DispatcherOperation.

Описывает приоритеты, с которыми могут вызываться операции посредством Dispatcher. Describes the priorities at which operations can be invoked by way of the Dispatcher.

Делегаты

Представляет метод обработки событий, связанных с DispatcherHooks. Represents the method that will handle DispatcherHooks related events.

Представляет делегат для использования в операциях диспетчера. Represents a delegate to use for dispatcher operations.

Представляет метод обработки события UnhandledException. Represents the method that will handle the UnhandledException event.

Представляет метод обработки события UnhandledExceptionFilter. Represents the method that will handle the UnhandledExceptionFilter event.

System. Threading Пространство имен

Предоставляет классы и интерфейсы для многопоточного программирования. Provides classes and interfaces that enable multithreaded programming. Помимо классов синхронизации работы потоков и доступа к данным (Mutex, Monitor, Interlocked, AutoResetEvent и т. д.), это пространство имен содержит класс ThreadPool, позволяющий использовать пул предоставляемых системой потоков, и класс Timer, выполняющий методы обратного вызова в потоках пула потоков. In addition to classes for synchronizing thread activities and access to data (Mutex, Monitor, Interlocked, AutoResetEvent, and so on), this namespace includes a ThreadPool class that allows you to use a pool of system-supplied threads, and a Timer class that executes callback methods on thread pool threads.

Читайте также:  How to install all drivers windows 10

Классы

Исключение вызывается, когда некоторый поток получает объект Mutex, брошенный другим потоком путем выхода без высвобождения. The exception that is thrown when one thread acquires a Mutex object that another thread has abandoned by exiting without releasing it.

Представляет внешние данные, локальные для данного асинхронного потока управления, такие как асинхронный метод. Represents ambient data that is local to a given asynchronous control flow, such as an asynchronous method.

Представляет событие синхронизации потоков, которое при срабатывании автоматически сбрасывается, освобождая один поток в состоянии ожидания. Represents a thread synchronization event that, when signaled, resets automatically after releasing a single waiting thread. Этот класс не наследуется. This class cannot be inherited.

Позволяет нескольким задачам параллельно работать с алгоритмом, используя несколько фаз. Enables multiple tasks to cooperatively work on an algorithm in parallel through multiple phases.

Исключение, которое возникает при сбое действия барьера Barrier, выполняемого в конце фазы. The exception that is thrown when the post-phase action of a Barrier fails.

Отправляет токену CancellationToken сигнал отмены. Signals to a CancellationToken that it should be canceled.

Обеспечивает методы для установки и инициализации сжатого стека в текущем потоке. Provides methods for setting and capturing the compressed stack on the current thread. Этот класс не наследуется. This class cannot be inherited.

Представляет примитив синхронизации, которому отправляется сигнал при достижении счетчиком нуля. Represents a synchronization primitive that is signaled when its count reaches zero.

Представляет событие синхронизации потока. Represents a thread synchronization event.

Предоставляет метод расширения Windows для создания объектов EventWaitHandle с определенными свойствами безопасности списка управления доступом (ACL). Provides a Windows-specific extension method for creating EventWaitHandle objects with specific access control list (ACL) security.

Управляет контекстом выполнения для текущего потока. Manages the execution context for the current thread. Этот класс не наследуется. This class cannot be inherited.

Инкапсулирует и распространяет контекст выполнения хоста по потокам. Encapsulates and propagates the host execution context across threads.

Обеспечивает функциональность, позволяющие узлу общеязыковой среды выполнения участвовать в потоке или миграции контекста выполнения. Provides the functionality that allows a common language runtime host to participate in the flow, or migration, of the execution context.

Предоставляет атомарные операции для переменных, общедоступных нескольким потокам. Provides atomic operations for variables that are shared by multiple threads.

Обеспечивает процедуры инициализации адаптирующегося типа. Provides lazy initialization routines.

Исключение, которое создается, когда рекурсивная запись блокировки не совместима с рекурсивной политикой блокировки. The exception that is thrown when recursive entry into a lock is not compatible with the recursion policy for the lock.

Представляет событие синхронизации потока, которое при получении сигнала необходимо сбросить вручную. Represents a thread synchronization event that, when signaled, must be reset manually. Этот класс не наследуется. This class cannot be inherited.

Представляет событие синхронизации потока, которое при получении сигнала необходимо сбросить вручную. Represents a thread synchronization event that, when signaled, must be reset manually. Этот класс является упрощенной альтернативой ManualResetEvent. This class is a lightweight alternative to ManualResetEvent.

Предоставляет механизм для синхронизации доступа к объектам. Provides a mechanism that synchronizes access to objects.

Примитив синхронизации, который также может использоваться в межпроцессной синхронизации. A synchronization primitive that can also be used for interprocess synchronization.

Предоставляет метод расширения Windows для создания объектов Mutex с определенными свойствами безопасности списка управления доступом (ACL). Provides a Windows-specific extension method for creating Mutex objects with specific access control list (ACL) security.

Предоставляет управляемое представление структуры OVERLAPPED Win32, включая методы для передачи данных из экземпляра Overlapped в структуру NativeOverlapped. Provides a managed representation of a Win32 OVERLAPPED structure, including methods to transfer information from an Overlapped instance to a NativeOverlapped structure.

Представляет предварительно выделенное состояние для собственных перекрывающихся операций ввода-вывода. Represents pre-allocated state for native overlapped I/O operations.

Определяет блокировку, которая поддерживает один пишущий поток и несколько читающих. Defines a lock that supports single writers and multiple readers.

Представляет блокировку, используемую для управления доступом к ресурсу, которая позволяет нескольким потокам производить считывание или получать монопольный доступ на запись. Represents a lock that is used to manage access to a resource, allowing multiple threads for reading or exclusive access for writing.

Представляет дескриптор, который регистрируется при вызове метода RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean). Represents a handle that has been registered when calling RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean). Этот класс не наследуется. This class cannot be inherited.

Ограничивает число потоков, которые могут одновременно обращаться к ресурсу или пулу ресурсов. Limits the number of threads that can access a resource or pool of resources concurrently.

Предоставляет метод расширения Windows для создания объектов Semaphore с определенными свойствами безопасности списка управления доступом (ACL). Provides a Windows-specific extension method for creating Semaphore objects with specific access control list (ACL) security.

Это исключение создается при вызове метода Release семафора, счетчик которого уже имеет максимальное значение. The exception that is thrown when the Release method is called on a semaphore whose count is already at the maximum.

Представляет упрощенную альтернативу семафору Semaphore, ограничивающему количество потоков, которые могут параллельно обращаться к ресурсу или пулу ресурсов. Represents a lightweight alternative to Semaphore that limits the number of threads that can access a resource or pool of resources concurrently.

Обеспечивает базовую функциональность для распространения контекста синхронизации в различных моделях синхронизации. Provides the basic functionality for propagating a synchronization context in various synchronization models.

Исключение, которое создается в то время, когда методу требуется вызвавший его объект для получения блокировки данного монитора, а метод вызван объектом, не являющимся владельцем блокировки. The exception that is thrown when a method requires the caller to own the lock on a given Monitor, and the method is invoked by a caller that does not own that lock.

Создает и контролирует поток, задает приоритет и возвращает статус. Creates and controls a thread, sets its priority, and gets its status.

Исключение, выдаваемое при вызове метода Abort(Object). The exception that is thrown when a call is made to the Abort(Object) method. Этот класс не наследуется. This class cannot be inherited.

Читайте также:  Hm1300ge2 d3 драйвер windows 10

Предоставляет данные для события ThreadException. Provides data for the ThreadException event.

Предоставляет методы расширения, специфичные для Windows, для управления дескрипторами безопасности списков управления доступом (ACL) для EventWaitHandle, Mutex и Semaphore. Provides Windows-specific extension methods for managing the access control list (ACL) security descriptors for EventWaitHandle, Mutex, and Semaphore.

Исключение, которое выдается при прерывании работы потока Thread, находящегося в состоянии ожидания. The exception that is thrown when a Thread is interrupted while it is in a waiting state.

Предоставляет хранилище для данных, локальных для потока. Provides thread-local storage of data.

Предоставляет пул потоков, который можно использовать для выполнения задач, отправки рабочих элементов, обработки асинхронного ввода-вывода, ожидания от имени других потоков и обработки таймеров. Provides a pool of threads that can be used to execute tasks, post work items, process asynchronous I/O, wait on behalf of other threads, and process timers.

Представляет дескриптор ввода-вывода, который привязан к системному пулу потоков и позволяет низкоуровневым компонентам получать уведомления для асинхронных операций ввода-вывода. Represents an I/O handle that is bound to the system thread pool and enables low-level components to receive notifications for asynchronous I/O operations.

Исключение выдается, когда происходит сбой в управляемом потоке после запуска базового потока операционной системы, но до готовности потока к выполнению кода пользователя. The exception that is thrown when a failure occurs in a managed thread after the underlying operating system thread has been started, but before the thread is ready to execute user code.

Исключение, которое выдается, когда объект Thread является неправильным свойством ThreadState для вызова метода. The exception that is thrown when a Thread is in an invalid ThreadState for the method call.

Содержит константы, определяющие бесконечные интервалы времени ожидания. Contains constants that specify infinite time-out intervals. Этот класс не наследуется. This class cannot be inherited.

Предоставляет механизм для выполнения метода в потоке пула с заданными интервалами. Provides a mechanism for executing a method on a thread pool thread at specified intervals. Этот класс не наследуется. This class cannot be inherited.

Содержит методы для выполнения операций энергонезависимой памяти. Contains methods for performing volatile memory operations.

Инкапсулирует связанные с операционной системой объекты, ожидающие монопольного доступа к общим ресурсам. Encapsulates operating system-specific objects that wait for exclusive access to shared resources.

Исключение, которое возникает при попытке открыть несуществующий системный семафор или дескриптор ожидания события. The exception that is thrown when an attempt is made to open a system mutex, semaphore, or event wait handle that does not exist.

Предоставляет удобные методы для работы с безопасным дескриптором для дескриптора ожидания. Provides convenience methods to for working with a safe handle for a wait handle.

Структуры

Обеспечивает функциональность для восстановления миграции или перемещения контекста выполнения между потоками. Provides the functionality to restore the migration, or flow, of the execution context between threads.

Класс, предоставляющий сведения об изменениях данных экземплярам AsyncLocal , которые зарегистрированы для получения уведомлений об изменениях. The class that provides data change information to AsyncLocal instances that register for change notifications.

Распространяет уведомление о том, что операции следует отменить. Propagates notification that operations should be canceled.

Представляет делегат обратного вызова, зарегистрированный с объектом CancellationToken. Represents a callback delegate that has been registered with a CancellationToken.

Определяет блокировку, которая реализует семантику «один записывающий / много читающих». Defines the lock that implements single-writer/multiple-reader semantics. Это тип значения. This is a value type.

Содержит явно заданный макет, видимый из неуправляемого кода и имеющий тот же макет, что и структура OVERLAPPED Win32, с дополнительными зарезервированными полями в конце. Provides an explicit layout that is visible from unmanaged code and that will have the same layout as the Win32 OVERLAPPED structure with additional reserved fields at the end.

Предоставляет примитив взаимно исключающей блокировки, в котором поток, пытающийся получить блокировку, ожидает в состоянии цикла, проверяя доступность блокировки. Provides a mutual exclusion lock primitive where a thread trying to acquire the lock waits in a loop repeatedly checking until the lock becomes available.

Предоставляет поддержку ожидания на основе прокруток. Provides support for spin-based waiting.

Интерфейсы

Представляет рабочий элемент, который может быть выполнен пулом ThreadPool. Represents a work item that can be executed by the ThreadPool.

Перечисления

Задает апартаментное состояние потока Thread. Specifies the apartment state of a Thread.

Указывает, сбрасывается ли EventWaitHandle автоматически или вручную после получения сигнала. Indicates whether an EventWaitHandle is reset automatically or manually after receiving a signal.

Определяет, как экземпляр Lazy синхронизирует доступ из нескольких потоков. Specifies how a Lazy instance synchronizes access among multiple threads.

Указывает, можно ли несколько раз войти в блокировку из одного и того же потока. Specifies whether a lock can be entered multiple times by the same thread.

Задает приоритет выполнения потока Thread. Specifies the scheduling priority of a Thread.

Задает состояния выполнения объекта Thread. Specifies the execution states of a Thread.

Делегаты

Представляет метод, вызываемый в новом контексте. Represents a method to be called within a new context.

Получает код ошибки, количество байтов и тип перекрывающегося значения при завершении операции ввода-вывода в пуле потоков. Receives the error code, number of bytes, and overlapped value type when an I/O operation completes on the thread pool.

Представляет метод, который выполняется в отношении Thread. Represents the method that executes on a Thread.

Задает метод, вызываемый при отправке сообщения в контекст синхронизации. Represents a method to be called when a message is to be dispatched to a synchronization context.

Представляет метод, обрабатывающий событие ThreadExceptionApplication. Represents the method that will handle the ThreadException event of an Application.

Представляет метод, который выполняется в отношении Thread. Represents the method that executes on a Thread.

Представляет метод, обрабатывающий вызовы от события Timer. Represents the method that handles calls from a Timer.

Представляет метод обратного вызова, выполняющегося потоком из пула потоков. Represents a callback method to be executed by a thread pool thread.

Представляет метод, который вызывается при получении объектом WaitHandle сигнала или истечении времени ожидания. Represents a method to be called when a WaitHandle is signaled or times out.

Оцените статью