私はquartz.netスケジュールジョブからwebapiメソッドを呼び出そうとしています。私のやり方が正しいかどうか分からないのですか?これが正しい方法であれば誰でも手助けできますか、より良いアプローチがありますか?quartzスケジュールジョブからasyncメソッドを同期的に呼び出す方法
MethodRepository.cs
public async Task<IEnumerable<ResultClass>> GetResult(string queryCriteria)
{
return await _httpClient.Get(queryCriteria);
}
クォーツ仕事:
public async void Execute(IJobExecutionContext context)
{
var results= await _repo.GetResult();
}
ジェネリックのHttpClient:
public async Task<IEnumerable<T>> Get(string queryCriteria)
{
_addressSuffix = _addressSuffix + queryCriteria;
var responseMessage = await _httpClient.GetAsync(_addressSuffix);
responseMessage.EnsureSuccessStatusCode();
return await responseMessage.Content.ReadAsAsync<IEnumerable<T>>();
}
しかし、石英のドキュメントは、私は石英ジョブで非同期メソッドを使用することはできませんと言います。どのようにしてWeb APIの方法ができますか?
私は水晶の仕事のようにメソッドを実行変更することができます。あなたはそれをしなければならない場合
public void Execute(IJobExecutionContext context)
{
var result = _repo.GetResult().Result;
}
可能な重複[C#での同期方法からの非同期メソッドを呼び出す方法?](http://stackoverflow.com/questions/9343594/how-to-call-asynchronous-method-from-synchronous-method -in-c) – lorond