title: gRPC - Procedures for many Clients without deadlocks in c#
body: <p>Let's say that I've a c# code that delivery a List set of tasks with props to a client:</p>
  
  <pre><code>public override Task&lt;MyTasksResult&gt; GetMyTasks(MyTasksRequest request, ServerCallContext context)
  {
    return Task.FromResult(GetMyTasks(request, context));
  }
  
  private MyTasksResult GetMyTasks(MyTasksRequest request, ServerCallContext context)
  {
    List&lt;MyTask&gt; list = _CoreService.GetMyTasks(request.MyTokenToFind);
    MyTasksResult t = new MyTasksResult();
    t.TaskList.AddRange(list);
    return t;
  }
  </code></pre>
  
  <p>And let's say that I don't want to make this async method, because the full set of tasks should come in at most 50 ms.
  But anyway, 50ms it's A LOT of time! So the main question is:
  Will this code release the gRPC to receive more requests of tasks from another clients in the same GetMyTasks method?</p>
  
  <p>I'm concernd since Thread.Sleep(x) can create a deadlock: would a sleep or lock on the "_CoreService.GetMyTasks" make it happen? Or since I've already set a Taks.FromResult at the begining I'm free of that?!
  Thks.</p>