C# Sharding and Multithreading - Deep Dive