Я получаю следующее предупреждение о задаче ожидания:

Ссылка: https://github.com/Microsoft/vs-threading/blob/ main/doc/analyzers/VSTHRD003.md
Не совсем понимаю, это как-то связано с контекстом синхронизации? Я использую ASP.NET Core, но насколько я понимаю его там нет.
public async Task WaitTestAsync(Task task)
{
await Task.Delay(1000000);
await task;
}
Как сделать этот код действительным? Пробовал написать это через JoinableTaskFactory, но предупреждение не работает.
string result;
JoinableTask joinableTask = joinableTaskFactory.RunAsync(async () =>
{
result = await task;
});
Аналогичное предупреждение появляется в моем промежуточном программном обеспечении при ожидании t:
public class GrpcExceptionInterceptor : Interceptor
{
private readonly ILogger _logger;
public GrpcExceptionInterceptor(ILogger logger)
{
_logger = logger;
}
public override AsyncUnaryCall AsyncUnaryCall(
TRequest request,
ClientInterceptorContext context,
AsyncUnaryCallContinuation continuation)
{
var call = continuation(request, context);
return new AsyncUnaryCall(HandleResponse(call.ResponseAsync), call.ResponseHeadersAsync, call.GetStatus, call.GetTrailers, call.Dispose);
}
private async Task HandleResponse(Task t)
{
try
{
var response = await t;
return response;
}
catch (RpcException e)
{
_logger.LogError("Error calling via grpc: {Status} - {Message}", e.Status, e.Message);
return default;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... p-net-core
Мобильная версия