невозможно преобразовать из «группы методов» в Fun c при создании новой задачи - PullRequest
1 голос
/ 27 апреля 2020

У меня есть функция, которая возвращает список, т.е.

public List<ApiClass> FuncA(List<DBClass> param)
{
  //returns list
  //however this list performs a lengthy operation that involves looping through the incoming parameter list
}

Я хотел бы вызвать вышеупомянутый метод асинхронно, как я пытаюсь сделать это ниже:

public static async void CallingMethod()
{
   Task<List<ApiClass>> unitOfWork = new Task<List<ApiClass>>(FuncA); //I'm getting an error here when I pass in FuncA 
   unitOfWork.Start();
   List<ApiClass> getList = await unitOfWork;
}

Я получаю ошибка здесь: Task<List<ApiClass>> unitOfWork = new Task<List<ApiClass>>(FuncA);

1 Ответ

1 голос
/ 27 апреля 2020

Task<List<ApiClass>> требует подписи метода следующим образом: public List<ApiClass> FuncA() - без каких-либо параметров метода.

Как Task узнает, какие параметры передаются FuncA?

Вы можете попробуйте это:

List<DBClass> inputData = ...
Task<List<ApiClass>> unitOfWork = new Task<List<ApiClass>>(  () => FuncA( inputData )  );

Создает inline Func<List<ApiClass>>, используя лямбда-выражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...