私はREST APIに接続し、さまざまなオブジェクトを取得するためにいくつかのエンドポイントを呼び出しています。私は、REST APIを呼び出し、結果を得るためにGetAll()
を呼び出して、各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());
:GetAll()
は数になり舞台裏
RestResult<Agent> agentResults = agentService.GetAll();
RestResult<Company> companyResults = companyService.GetAll();
RestResult<Contact> contactResults = contactService.GetAll();
RestResult<Ticket> ticketResults = ticketService.GetAll();
を私がダウンロードしたいタイプごとにRestService<T>
を作成しますHttpWebRequest
のリクエスチョン。
私は何とか4 GetAll()
呼び出しを並列に呼び出すことを考えています。理論的には、複数の要求を1つずつ繰り返して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()
);
しかし、変数が初期化されることはありませんように見えます:私が持っていた
ひとつのアイデアでした。
これにアプローチする方法についてのご意見はありますか?
「それはのように見える」とはどういう意味:
最も簡単な解決策は、単にデフォルト値(
null
)を使用して手動でそれらをinitalizeするのですか?彼らはまだ 'ヌル'ですか?もしそうなら、 'GetAll()'メソッドが何か他のものを返したことを確かめますか? –申し訳ありませんが、私が意味したのは、コンパイルエラーが発生し、後でそれらを試して使用するときに、変数が割り当てられていないということです。 – moose56