Метод Run
Task.Run выполняет код на потоке
из пула. Task.Run(() => 12345)
даёт Task<int>, await
снимает 12345. Паузу делают через
Delay,
не через длинный Run. Есть
RunAsync.
Синтаксис
Task task = Task.Run(() => { });
Task<int> task = Task.Run(() => 12345);
Пример
Давайте получим число из Run:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
int res = await Task.Run(() => 12345);
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте вернём строку из делегата:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string res = await Task.Run(() => "abcde");
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте дождёмся пустого Run:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
await Task.Run(() => { });
bool res = true;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
метод
Delay,
асинхронная пауза -
метод
Yield,
отдать ход планировщику -
Task,
класс, где объявленRun -
async-лямбда,
делегат сawait