Task<TResult> Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет асинхронную операцию, которая может вернуть значение.
generic <typename TResult>
public ref class Task : System::Threading::Tasks::Task
public class Task<TResult> : System.Threading.Tasks.Task
type Task<'Result> = class
inherit Task
Public Class Task(Of TResult)
Inherits Task
Параметры типа
- TResult
Тип результата, созданного данной задачей Task<TResult>.
- Наследование
Комментарии
Класс Task<TResult> представляет одну операцию, которая возвращает значение и обычно выполняется асинхронно. Task<TResult>Объекты являются одним из центральных компонентов асинхронной модели на основе задач, впервые представленной в платформа .NET Framework 4. Поскольку работа, выполняемая Task<TResult> объектом, обычно выполняется асинхронно в потоке пула потоков, а не синхронно в потоке main приложения, для определения состояния задачи можно использовать Status свойство , а также IsCanceledсвойства , IsCompletedи IsFaulted . Чаще всего лямбда-выражение используется для указания работы, которую выполняет задача.
Task<TResult> Экземпляры могут создаваться различными способами. Наиболее распространенным подходом, который доступен начиная с платформа .NET Framework 4.5, является вызов статического Task.Run<TResult>(Func<TResult>) метода или Task.Run<TResult>(Func<TResult>, CancellationToken) . Эти методы предоставляют простой способ запуска задачи с помощью значений по умолчанию и без получения дополнительных параметров. В следующем примере метод используется Task.Run<TResult>(Func<TResult>) для запуска задачи, которая выполняет цикл, а затем отображает количество итераций цикла:
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
var t = Task<int>.Run( () => {
// Just loop.
int max = 1000000;
int ctr = 0;
for (ctr = 0; ctr <= max; ctr++) {
if (ctr == max / 2 && DateTime.Now.Hour <= 12) {
ctr++;
break;
}
}
return ctr;
} );
Console.WriteLine("Finished {0:N0} iterations.", t.Result);
}
}
// The example displays output like the following:
// Finished 1,000,001 loop iterations.
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim t As Task(Of Integer) = Task.Run(Function()
Dim max As Integer = 1000000
Dim ctr As Integer
For ctr = 0 to max
If ctr = max \ 2 And Date.Now.Hour <= 12 Then
ctr += 1
Exit For
End If
Next
Return ctr
End Function)
Console.WriteLine("Finished {0:N0} iterations.", t.Result)
End Sub
End Module
' The example displays the following output:
' Finished 1,000,001 loop iterations
Альтернативным и наиболее распространенным способом запуска задачи в платформа .NET Framework 4 является вызов статического TaskFactory.StartNew метода или TaskFactory<TResult>.StartNew . Свойство Task.Factory возвращает TaskFactory объект , а Task<TResult>.Factory свойство — TaskFactory<TResult> объект . Перегрузки их StartNew
метода позволяют передавать аргументы, определять параметры создания задач и указывать планировщик задач. В следующем примере используется TaskFactory<TResult>.StartNew(Func<TResult>) метод для запуска задачи. Он функционально эквивалентен коду в предыдущем примере.
using System;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
var t = Task<int>.Factory.StartNew( () => {
// Just loop.
int max = 1000000;
int ctr = 0;
for (ctr = 0; ctr <= max; ctr++) {
if (ctr == max / 2 && DateTime.Now.Hour <= 12) {
ctr++;
break;
}
}
return ctr;
} );
Console.WriteLine("Finished {0:N0} iterations.", t.Result);
}
}
// The example displays the following output:
// Finished 1000001 loop iterations
Imports System.Threading.Tasks
Module Example
Public Sub Main()
Dim t = Task(Of Integer).Factory.StartNew(Function()
Dim max As Integer = 1000000
Dim ctr As Integer
For ctr = 0 to max
If ctr = max \ 2 And Date.Now.Hour <= 12 Then
ctr += 1
Exit For
End If
Next
Return ctr
End Function)
Console.WriteLine("Finished {0:N0} iterations.", t.Result)
End Sub
End Module
' The example displays output like the following:
' Finished 1,000,001 iterations
Более полные примеры см. в разделе Асинхронное программирование на основе задач.
Класс Task<TResult> также предоставляет конструкторы, которые инициализируют задачу, но не планируют ее выполнение. По соображениям Task.Run производительности методы и Task.Factory.StartNew
являются предпочтительными механизмами для создания и планирования вычислительных задач, но в сценариях, в которых создание и планирование задач должны быть разделены, можно использовать конструкторы, а метод задачи Start можно использовать для планирования выполнения задачи на более позднее время.
Начиная с классических приложений, предназначенных для платформа .NET Framework 4.6, язык и региональные параметры потока, который создает и вызывает задачу, становятся частью контекста потока. То есть независимо от текущего языка и региональных параметров потока, в котором выполняется задача, текущий язык и региональные параметры задачи являются языком и региональными параметрами вызывающего потока. Для приложений, предназначенных для версий платформа .NET Framework до платформа .NET Framework 4.6, язык и региональные параметры задачи — это язык и региональные параметры потока, в котором выполняется задача. Дополнительные сведения см. в разделе "Язык и региональные параметры и асинхронные операции на основе задач" этой статьи CultureInfo . Обратите внимание, что приложения Магазина следуют среда выполнения Windows в параметре и получении языка и региональных параметров по умолчанию.
Для операций, которые не возвращают значение, используется Task класс . Начиная с C# 7.0 для более простой задачи, которая является типом значения, а не ссылочным типом, используйте структуру System.Threading.Tasks.ValueTask<TResult> .
Конструкторы
Task<TResult>(Func<Object,TResult>, Object) |
Инициализирует новую задачу Task<TResult> с указанными функцией и состоянием. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken) |
Инициализирует новую задачу Task<TResult> с заданными действием, состоянием и параметрами. |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions) |
Инициализирует новую задачу Task<TResult> с заданными действием, состоянием и параметрами. |
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
Инициализирует новую задачу Task<TResult> с заданными действием, состоянием и параметрами. |
Task<TResult>(Func<TResult>) |
Инициализирует новую задачу Task<TResult> с указанной функцией. |
Task<TResult>(Func<TResult>, CancellationToken) |
Инициализирует новую задачу Task<TResult> с указанной функцией. |
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions) |
Инициализирует новую задачу Task<TResult> с указанной функцией и параметрами создания. |
Task<TResult>(Func<TResult>, TaskCreationOptions) |
Инициализирует новую задачу Task<TResult> с указанной функцией и параметрами создания. |
Свойства
AsyncState |
Получает объект состояния, предоставленный при создании задачи Task, или значение null, если объект не предоставлен. (Унаследовано от Task) |
CreationOptions |
Возвращает объект TaskCreationOptions, используемый для создания данной задачи. (Унаследовано от Task) |
Exception |
Возвращает объект AggregateException, который привел к преждевременному завершению задачи Task. Если задача Task завершилась успешно или еще не создала ни одного исключения, возвращает значение |
Factory |
Возвращает фабричный метод для создания и настройки Task<TResult> экземпляров. |
Id |
Возвращает идентификатор указанного экземпляра Task. (Унаследовано от Task) |
IsCanceled |
Возвращает значение, указывающее, завершилось ли выполнение данного экземпляра Task из-за отмены. (Унаследовано от Task) |
IsCompleted |
Получает значение, указывающее, завершена ли задача. (Унаследовано от Task) |
IsCompletedSuccessfully |
Возвращает значение, указывающее, выполнена ли задача. (Унаследовано от Task) |
IsFaulted |
Возвращает значение, указывающее, завершилась ли задача Task из-за необработанного исключения. (Унаследовано от Task) |
Result |
Получает итоговое значение данного объекта Task<TResult>. |
Status |
Получает состояние TaskStatus данной задачи. (Унаследовано от Task) |
Методы
ConfigureAwait(Boolean) |
Настраивает объект типа awaiter, используемый для данного объекта Task<TResult>. |
ConfigureAwait(Boolean) |
Настраивает объект типа awaiter, используемый для данного объекта Task. (Унаследовано от Task) |
ConfigureAwait(ConfigureAwaitOptions) |
Настраивает объект типа awaiter, используемый для данного объекта Task. |
ConfigureAwait(ConfigureAwaitOptions) |
Настраивает объект типа awaiter, используемый для данного объекта Task. (Унаследовано от Task) |
ContinueWith(Action<Task,Object>, Object) |
Создает продолжение, которое получает предоставленные вызывающей стороной сведения о состоянии и которое выполняется после завершения целевой задачи Task. (Унаследовано от Task) |
ContinueWith(Action<Task,Object>, Object, CancellationToken) |
Создает продолжение, которое получает предоставленные вызывающей стороной сведения о состоянии и маркер отмены и которое выполняется асинхронно после завершения целевой задачи Task. (Унаследовано от Task) |
ContinueWith(Action<Task,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, которое получает предоставленные вызывающей стороной сведения о состоянии и маркер отмены и которое выполняется после завершения целевой задачи Task. Продолжение выполняется на основе набора указанных условий и использует указанный планировщик. (Унаследовано от Task) |
ContinueWith(Action<Task,Object>, Object, TaskContinuationOptions) |
Создает продолжение, которое получает предоставленные вызывающей стороной сведения о состоянии и которое выполняется после завершения целевой задачи Task. Продолжение выполняется на основе набора указанных условий. (Унаследовано от Task) |
ContinueWith(Action<Task,Object>, Object, TaskScheduler) |
Создает продолжение, которое получает предоставленные вызывающей стороной сведения о состоянии и выполняется асинхронно после завершения целевой задачи Task. Продолжение использует указанный планировщик. (Унаследовано от Task) |
ContinueWith(Action<Task<TResult>,Object>, Object) |
Создает продолжение, которое получает сведения о состоянии и выполняется после завершения целевой задачи Task<TResult>. |
ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith(Action<Task<TResult>,Object>, Object, TaskContinuationOptions) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith(Action<Task<TResult>,Object>, Object, TaskScheduler) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith(Action<Task<TResult>>) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи. |
ContinueWith(Action<Task<TResult>>, CancellationToken) |
Создает отменяемое продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task<TResult>. |
ContinueWith(Action<Task<TResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, выполняемое в соответствии с условием, заданным в |
ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) |
Создает продолжение, выполняемое в соответствии с условием, заданным в |
ContinueWith(Action<Task<TResult>>, TaskScheduler) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task<TResult>. |
ContinueWith(Action<Task>) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task. (Унаследовано от Task) |
ContinueWith(Action<Task>, CancellationToken) |
Создает продолжение, которое получает маркер отмены и которое выполняется асинхронно после завершения целевой задачи Task. (Унаследовано от Task) |
ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, которое выполняется после завершения целевой задачи в соответствии с заданными параметрами TaskContinuationOptions. Продолжение получает маркер отмены и использует указанный планировщик. (Унаследовано от Task) |
ContinueWith(Action<Task>, TaskContinuationOptions) |
Создает продолжение, которое выполняется после завершения целевой задачи в соответствии с заданными параметрами TaskContinuationOptions. (Унаследовано от Task) |
ContinueWith(Action<Task>, TaskScheduler) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task. Продолжение использует указанный планировщик. (Унаследовано от Task) |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskContinuationOptions) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskScheduler) |
Создает продолжение, которое выполняется после завершения выполнения целевого объекта Task<TResult>. |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task<TResult>. |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task<TResult>. |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, выполняемое в соответствии с условием, заданным в |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskContinuationOptions) |
Создает продолжение, выполняемое в соответствии с условием, заданным в |
ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskScheduler) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task<TResult>. |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object) |
Создает продолжение, которое получает предоставленные вызывающей стороной сведения о состоянии, выполняется асинхронно после завершения целевой задачи Task и возвращает значение. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, CancellationToken) |
Создает продолжение, которое выполняется асинхронно после завершения целевой задачи Task и возвращает значение. Продолжение получает предоставленные вызывающей стороной сведения и маркер отмены. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, которое выполняется на основе указанных параметров продолжения задачи после завершения целевой задачи Task и которое возвращает значение. Продолжение получает предоставленные вызывающей стороной сведения и маркер отмены, а также использует указанный планировщик. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, TaskContinuationOptions) |
Создает продолжение, которое выполняется на основе указанных параметров продолжения задачи после завершения целевой задачи Task. Продолжение получает предоставленные вызывающей стороной сведения. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,Object,TResult>, Object, TaskScheduler) |
Создает продолжение, которое выполняется асинхронно после завершения выполнения целевой задачи Task. Продолжение получает предоставленные вызывающей стороной сведения и использует указанный планировщик. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,TResult>) |
Создает продолжение, которое выполняется асинхронно после завершения целевой задачи Task<TResult> и возвращает значение. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,TResult>, CancellationToken) |
Создает продолжение, которое выполняется асинхронно после завершения целевой задачи Task и возвращает значение. Продолжение получает маркер отмены. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение, которое выполняется в соответствии с заданными параметрами и которое возвращает значение. Продолжение получает маркер отмены и использует указанный планировщик. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,TResult>, TaskContinuationOptions) |
Создает продолжение, которое выполняется в соответствии с заданными параметрами и которое возвращает значение. (Унаследовано от Task) |
ContinueWith<TResult>(Func<Task,TResult>, TaskScheduler) |
Создает продолжение, которое выполняется асинхронно после завершения целевой задачи Task и возвращает значение. Продолжение использует указанный планировщик. (Унаследовано от Task) |
Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса Task. (Унаследовано от Task) |
Dispose(Boolean) |
Удаляет задачуTask, освобождая все используемые ею неуправляемые ресурсы. (Унаследовано от Task) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetAwaiter() |
Получает объект типа awaiter, используемый для данного объекта Task<TResult>. |
GetAwaiter() |
Получает объект типа awaiter, используемый для данного объекта Task. (Унаследовано от Task) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
RunSynchronously() |
Синхронно выполняет задачу Task в текущем планировщике TaskScheduler. (Унаследовано от Task) |
RunSynchronously(TaskScheduler) |
Синхронно выполняет задачу Task в предоставленном планировщике TaskScheduler. (Унаследовано от Task) |
Start() |
Запускает задачу Task, планируя ее выполнение в текущем планировщике TaskScheduler. (Унаследовано от Task) |
Start(TaskScheduler) |
Запускает задачу Task, планируя ее выполнение в заданном планировщике TaskScheduler. (Унаследовано от Task) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Wait() |
Ожидает завершения выполнения задачи Task. (Унаследовано от Task) |
Wait(CancellationToken) |
Ожидает завершения выполнения задачи Task. Ожидание завершается, если токен отмены отменяется до завершения задачи. (Унаследовано от Task) |
Wait(Int32) |
Ожидает завершения задачи Task в течение указанного числа миллисекунд. (Унаследовано от Task) |
Wait(Int32, CancellationToken) |
Ожидает завершения выполнения задачи Task. Ожидание завершается, если время ожидания истекает или токен отмены отменяется до завершения задачи. (Унаследовано от Task) |
Wait(TimeSpan) |
Ожидает завершения выполнения задач Task в течение указанного временного периода. (Унаследовано от Task) |
Wait(TimeSpan, CancellationToken) |
Ожидает завершения выполнения задачи Task. (Унаследовано от Task) |
WaitAsync(CancellationToken) |
Возвращает объект , Task<TResult> который будет завершен после завершения или Task<TResult> при запросе отмены указанного CancellationToken объекта. |
WaitAsync(CancellationToken) |
Возвращает объект , Task который будет завершен после завершения или Task при запросе отмены указанного CancellationToken объекта. (Унаследовано от Task) |
WaitAsync(TimeSpan) |
Возвращает объект , Task<TResult> который будет завершен по завершении или Task<TResult> по истечении указанного времени ожидания. |
WaitAsync(TimeSpan) |
Возвращает объект , Task который будет завершен по завершении или Task по истечении указанного времени ожидания. (Унаследовано от Task) |
WaitAsync(TimeSpan, CancellationToken) |
Возвращает объект , Task<TResult> который будет завершен по завершении, Task<TResult> по истечении указанного времени ожидания или при запросе отмены указанного CancellationToken объекта. |
WaitAsync(TimeSpan, CancellationToken) |
Возвращает объект , Task который будет завершен по завершении, Task по истечении указанного времени ожидания или при запросе отмены указанного CancellationToken объекта. (Унаследовано от Task) |
WaitAsync(TimeSpan, TimeProvider) |
Возвращает объект , Task<TResult> который будет завершен по завершении или Task<TResult> по истечении указанного времени ожидания. |
WaitAsync(TimeSpan, TimeProvider) |
Возвращает объект , Task который будет завершен по завершении или Task по истечении указанного времени ожидания. (Унаследовано от Task) |
WaitAsync(TimeSpan, TimeProvider, CancellationToken) |
Возвращает объект , Task<TResult> который будет завершен по завершении, Task<TResult> по истечении указанного времени ожидания или при запросе отмены указанного CancellationToken объекта. |
WaitAsync(TimeSpan, TimeProvider, CancellationToken) |
Возвращает объект , Task который будет завершен по завершении, Task по истечении указанного времени ожидания или при запросе отмены указанного CancellationToken объекта. (Унаследовано от Task) |
Явные реализации интерфейса
IAsyncResult.AsyncWaitHandle |
Возвращает дескриптор WaitHandle, который можно использовать для ожидания завершения задачи. (Унаследовано от Task) |
IAsyncResult.CompletedSynchronously |
Получает значение, указывающее, синхронно ли выполнена операция. (Унаследовано от Task) |
Методы расширения
AsyncWait<TException>(Task) |
Представляет асинхронную операцию, которая может вернуть значение. |
AwaitWithTimeout(Task, TimeSpan) |
Представляет асинхронную операцию, которая может вернуть значение. |
ToApm(Task, AsyncCallback, Object) |
Представляет асинхронную операцию, которая может вернуть значение. |
ToApm<TResult>(Task<TResult>, AsyncCallback, Object) |
Представляет асинхронную операцию, которая может вернуть значение. |
ToApmEnd(IAsyncResult) |
Представляет асинхронную операцию, которая может вернуть значение. |
ToApmEnd<TResult>(IAsyncResult) |
Представляет асинхронную операцию, которая может вернуть значение. |
Wait(Task, TimeSpan, Action<Exception,TimeSpan,String>, String) |
Представляет асинхронную операцию, которая может вернуть значение. |
WaitForCompletion(Task) |
Представляет асинхронную операцию, которая может вернуть значение. |
WaitForCompletion<TResult>(Task<TResult>) |
Представляет асинхронную операцию, которая может вернуть значение. |
WaitForCompletionNoSpin(Task) |
Представляет асинхронную операцию, которая может вернуть значение. |
WaitForCompletionNoSpin(Task, TimeSpan) |
Представляет асинхронную операцию, которая может вернуть значение. |
WaitForCompletionNoSpin<TResult>(Task<TResult>) |
Представляет асинхронную операцию, которая может вернуть значение. |
WaitAsync(Task, TimeSpan, TimeProvider, CancellationToken) |
Представляет асинхронную операцию, которая может вернуть значение. |
WaitAsync<TResult>(Task<TResult>, TimeSpan, TimeProvider, CancellationToken) |
Представляет асинхронную операцию, которая может вернуть значение. |
DispatcherOperationWait(Task) |
Ожидает завершения базовой операции DispatcherOperation в течение неограниченного времени. |
DispatcherOperationWait(Task, TimeSpan) |
Ожидает истечения заданного количества времени для базового DispatcherOperation. |
IsDispatcherOperationTask(Task) |
Возвращает значение, указывающее, связан ли данный Task с DispatcherOperation. |
AsAsyncAction(Task) |
Возвращает асинхронное действие среды выполнения Windows, представляющее запущенную задачу. |
AsAsyncOperation<TResult>(Task<TResult>) |
Возвращает асинхронную операцию среды выполнения Windows, представляющую запущенную задачу, которая возвращает результат. |
Применяется к
Потокобезопасность
Все члены Task<TResult>, за исключением Dispose(), являются потокобезопасными и могут использоваться из нескольких потоков одновременно.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по