C# - custom thread pool