Understanding the SynchronizationContext in .NET with C#