JoinableTaskFactory Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Фабрика для запуска асинхронных задач, которые могут смягчить последствия взаимоблокировки, если задачам требуется главный поток приложения, а сам главный поток может блокироваться при завершении задачи.
public ref class JoinableTaskFactory
[Windows::Foundation::Metadata::WebHostHidden]
class JoinableTaskFactory
public class JoinableTaskFactory
type JoinableTaskFactory = class
Public Class JoinableTaskFactory
- Наследование
-
JoinableTaskFactory
- Производный
Комментарии
Более полные комментарии см. в разделе JoinableTaskContext .
Конструкторы
| JoinableTaskFactory(JoinableTaskCollection) |
Инициализирует новый экземпляр JoinableTaskFactory класса, который добавляет все созданные задания в указанную коллекцию. |
| JoinableTaskFactory(JoinableTaskContext) |
Инициализирует новый экземпляр класса JoinableTaskFactory. |
Свойства
| Context |
Получает контекста присоединяемой задачи, к которому принадлежит данная фабрика. |
| HangDetectionTimeout |
Возвращает или задает время ожидания, по истечении которого действие не выполнялось, а синхронная блокировка предполагает возникновение зависания. |
| UnderlyingSynchronizationContext |
Получает базовый контекст SynchronizationContext, который управляет основным потоком в приложении. |
Методы
| Add(JoinableTask) |
Добавляет указанную присоединяемую задачу в применимую коллекцию. |
| IsWaitingOnLongRunningTask() |
Проверьте, ожидает ли текущий joinableTask выполнение длительной задачи. |
| OnTransitionedToMainThread(JoinableTask, Boolean) |
Возникает каждый раз, когда соединяемая задача завершает переход к основному потоку. |
| OnTransitioningToMainThread(JoinableTask) |
Возникает, когда соединяемая задача запросила переход к основному потоку. |
| PostToUnderlyingSynchronizationContext(SendOrPostCallback, Object) |
Отправляет сообщение в заданный базовый SynchronizationContext для обработки, когда основной поток будет свободно доступен. |
| Run(Func<Task>) |
Выполняет указанный асинхронный метод для завершения, одновременно синхронно блокируя вызывающий поток. |
| Run(Func<Task>, JoinableTaskCreationOptions) |
Выполняет указанный асинхронный метод для завершения, одновременно синхронно блокируя вызывающий поток. |
| Run<T>(Func<Task<T>>) |
Выполняет указанный асинхронный метод для завершения, одновременно синхронно блокируя вызывающий поток. |
| Run<T>(Func<Task<T>>, JoinableTaskCreationOptions) |
Выполняет указанный асинхронный метод для завершения, одновременно синхронно блокируя вызывающий поток. |
| RunAsync(Func<Task>) |
Вызывает асинхронный делегат в потоке вызывающего объекта и возвращает результат обратно вызывающему объекту, когда вызывается асинхронный метод. Асинхронный делегат вызывается таким образом, чтобы устранить взаимоблокировки в случае, когда методу Async требуется основной поток, в то время как главный поток блокируется, ожидая завершения асинхронного метода. |
| RunAsync(Func<Task>, JoinableTaskCreationOptions) |
Вызывает асинхронный делегат в потоке вызывающего объекта и возвращает результат обратно вызывающему объекту, когда вызывается асинхронный метод. Асинхронный делегат вызывается таким образом, чтобы устранить взаимоблокировки в случае, когда методу Async требуется основной поток, в то время как главный поток блокируется, ожидая завершения асинхронного метода. |
| RunAsync<T>(Func<Task<T>>) |
Вызывает асинхронный делегат в потоке вызывающего объекта и возвращает результат обратно вызывающему объекту, когда вызывается асинхронный метод. Асинхронный делегат вызывается таким образом, чтобы устранить взаимоблокировки в случае, когда методу Async требуется основной поток, в то время как главный поток блокируется, ожидая завершения асинхронного метода. |
| RunAsync<T>(Func<Task<T>>, JoinableTaskCreationOptions) |
Вызывает асинхронный делегат в потоке вызывающего объекта и возвращает результат обратно вызывающему объекту, когда вызывается асинхронный метод. Асинхронный делегат вызывается таким образом, чтобы устранить взаимоблокировки в случае, когда методу Async требуется основной поток, в то время как главный поток блокируется, ожидая завершения асинхронного метода. |
| SwitchToMainThreadAsync(Boolean, CancellationToken) |
Получает ожидающий выполнения, пропродолжение которого выполняется в контексте синхронизации, с которым был инициализирован этот экземпляр, таким образом, чтобы уменьшить взаимоблокировки и повторное выполнение входа. |
| SwitchToMainThreadAsync(CancellationToken) |
Получает ожидающий выполнения, пропродолжение которого выполняется в контексте синхронизации, с которым был инициализирован этот экземпляр, таким образом, чтобы уменьшить взаимоблокировки и повторное выполнение входа. |
| WaitSynchronously(Task) |
Синхронно блокирует вызывающий поток для выполнения определенной задачи. При выполнении в основном потоке все применимые механизмы обработки сообщений подавляются на время "сна" потока. |
| WaitSynchronouslyCore(Task) |
Синхронно блокирует вызывающий поток для выполнения определенной задачи. |
Методы расширения
Применяется к
Потокобезопасность
Этот тип является потокобезопасным для всех элементов.