I think this should be wrapped in a `using (ThreadAffinity())` statement