Краткий ответ: async (file) => /*perform async operation*/
Как описано в Документах Microsoft , Func (функция) используется для указания метода.
Это очень похоже на работу Action, исключение Actions возвращает Void, тогда как Functions возвращает последний универсальный параметр. Например:
Func<int, int, string>
Примет следующий метод в качестве аргумента:
string AddNumbers(int value1, int value2)
{
return (value1 + value2).ToString()
}
В случае Задачи из-за синтаксического сахара, реализованного вместе с Задачами, вы можете выполнять операции Await с помощью метода, помеченного как Async. Например:
Func<string, Task>
Примет следующий метод в качестве аргумента:
async Task AddNumbers(string url)
{
var client = new HttpClient();
await client.PostAsync(url);
}
Выражения Lamda являются сокращениями для встроенных методов. Так что async (url) => await new HttpClient().PostAsync(url);
такой же, как метод, описанный выше.
В этом случае вы, вероятно, просто захотите выполнить некоторую асинхронную операцию чтения / записи на жестком диске.