[英]Call webAPI method synchronously
我想从Windows服务中调用webAPI方法,并且不需要说异步调用。 如果我确实以异步方式处理此呼叫,那么我将不得不在我不希望这样做的整个呼叫链中传播异步。 相反,我希望该方法被同步调用。
在我看来,到处都只有在整个代码中保持异步(我不需要或不需要),或者使用此处所述的解决方法。 我认为,有一种更干净的方法可以简单地从Windows服务中调用webAPI方法,而无需执行这些选项中的任何一个。 我是否缺少某些东西,或者只是它的样子?
通过阅读其他文章和该文章,我知道执行以下代码是不好的,并且可能导致死锁,但是我想象到现在,除了使用hack之外,还有一种更好的“修复”方法。 最新的.NET版本中是否添加了当前的首选方法?
public void Send(MeasurementProcessResults measurementResult)
{
var response = httpClient.PostAsJsonAsync("api/notification", measurementResult).Result;
if(response.IsSuccessStatusCode)
{
//Do some stuff here
}
else
{
//throw an exception.
}
}
我最终使用了RestSharp ,它具有用于本地调用rest服务的同步方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.