Допустим, у меня есть c# код, который доставляет клиенту список задач List с реквизитом:
public override Task<MyTasksResult> GetMyTasks(MyTasksRequest request, ServerCallContext context)
{
return Task.FromResult(GetMyTasks(request, context));
}
private MyTasksResult GetMyTasks(MyTasksRequest request, ServerCallContext context)
{
List<MyTask> list = _CoreService.GetMyTasks(request.MyTokenToFind);
MyTasksResult t = new MyTasksResult();
t.TaskList.AddRange(list);
return t;
}
И, скажем, я не хочу делать эту асинхронность c метод, потому что полный набор задач должен составлять не более 50 мс. Но в любом случае, 50 мс это много времени! Итак, главный вопрос: выпустит ли этот код gRP C для получения большего количества запросов задач от других клиентов в том же методе GetMyTasks?
Я согласен, так как Thread.Sleep (x) может создать взаимоблокировка: вызовет ли сон или блокировку «_CoreService.GetMyTasks»? Или так как я уже установил Taks.FromResult в начале, я свободен от этого ?! Thks.