Parallel process interest in C#
First thing is that you should limit the degree of parallelism, to ex: 4 threads

Parallel.ForEach(
    listOfWebpages,
    new ParallelOptions { MaxDegreeOfParallelism = 4 },
    webpage =&gt; { Download(webpage); }
);


Without this, you are going to DDoS your service or resource you are using.



You seem to be using Project Orleans and AFAIK a grain should be a single threaded container. You should be able to do just:

private void ParallelDealUserList(IEnumerable&lt;string&gt; list)
{
    foreach(var item in list)
        GrainClient
            .GrainFactory
            .GetGrain&lt;IUser&gt;(item.id.ToGuid())
            .DoProcessInterestAsync(true);
}




I am not all that familiar with Project Orleans. Most likely this can be used, but I would use microservices (aka SOA2) instead.