Я подключаюсь к REST API и вызываю несколько конечных точек для получения разных объектов. Я создаю RestService<T>
для каждого типа я хочу скачать:Провести параллельную серию методов
RestService<Agent> agentService = new RestService<Agent>(auth, new AgentApi());
RestService<Ticket> ticketService = new RestService<Ticket>(auth, new TicketApi());
RestService<Company> companyService = new RestService<Company>(auth, new CompanyApi());
RestService<Contact> contactService = new RestService<Contact>(auth, new ContactApi());
Для каждого RestService<T>
я называю GetAll()
для вызова REST API и получить результаты:
RestResult<Agent> agentResults = agentService.GetAll();
RestResult<Company> companyResults = companyService.GetAll();
RestResult<Contact> contactResults = contactService.GetAll();
RestResult<Ticket> ticketResults = ticketService.GetAll();
За кулисами GetAll()
делает ряд из HttpWebRequest
resquests.
Так что я думаю, так или иначе вызвать вызовы 4 GetAll()
, как и в теории. Я могу выполнять несколько запросов к REST API, а не один за другим.
Одна идея у меня было:
RestResult<Agent> agentResults;
RestResult<Company> companyResults;
RestResult<Contact> contactResults;
RestResult<Ticket> ticketResults;
Parallel.Invoke(
() => agentResults = agentService.GetAll(),
() => companyResults = companyService.GetAll(),
() => contactResults = contactService.GetAll(),
() => ticketResults = ticketService.GetAll()
);
Но, похоже, переменные никогда не инициализируются.
Любые предложения о том, как подойти к этому?
Что «это выглядит как» означает? Они все еще «нулевые»? Если да, уверены ли вы, что методы 'GetAll()' вернули что-то еще? –
Извините, я имел в виду, что я получаю ошибку компиляции, говоря, что переменные не назначены, когда я пытаюсь их использовать позже. – moose56