Properly start threads with function arguments - C#