[英]Invoking non-async methods from async methods while maintaining high availability
在這種情況下是否還有其他選擇,我可以在不重構和不創建線程的情況下調用非異步方法,同時保持高可用性?
您的選擇是:
最簡單的方法是將非同步方法放在Task.Run
命令中:
async Task<IActionResult> MyControllerMethod(CancellationToken cancellationToken) {
var str = await Task.Run(() =>
{
return MyReturnMethod();
}, cancellationToken);
await Task.Run (() => MyVoidMethod(), cancellationToken);
}
public string MyReturnMethod() {...}
public void MyVoidMethod() {...}
請注意,取消令牌是可選的,但強烈推薦。 此外,您不需要將變量傳遞到 API 端點。 如果它來自 web 請求,它將自動生成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.