[英]How to make async action method that call to external c# dll
I have action method in my ASP.NET Core Web API project that call to function in external C# dll. 這些函數對我傳遞給它們的數據進行計算,並將 output 返回給我。 我如何做我的動作 function 異步? 甚至有必要這樣做嗎?
[HttpPost]
public IActionResult SetClac([FromBody] CalcRequest calcRequest)
{
try
{
IClacSdk clacSdk = new CalcSdk();
ClacResult clacResult = clacSdk.clac(calcRequest.id , calcRequest.username)
CustomeResponse customeResponse = new CustomeResponse()
{
ErrorDescription = clacResult.ErrorDescription,
ErrorNum = clacResult.ErrorNum,
ClacResult = clacResult.Result
};
return Ok(customeResponse);
}
catch (Exception exc)
{
return StatusCode(500, (GetErrorFormat(exc)));
}
}
我如何做我的動作 function 異步?
您可以將它們包裝在Task.Run
中(盡管它不會使操作“真正”異步)。 IE:
ClacResult clacResult = await Task.Run(() => clacSdk.clac(calcRequest.id , calcRequest.username));
甚至有必要這樣做嗎?
不。甚至更多 - 在 ASP.NET Core 的上下文中,一般情況下建議不要這樣做,因為它會對服務器吞吐量產生負面影響(盡管如果您有多個要並行執行的計算並且單獨的響應時間是優先級,您可以利用Task.Run
)。
如果你想挖掘北斗,有多種資源可以開始:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.