C# multithreading library