IO threads - why need them? - C#