I have a WPF Map control in a UserControl initially having Visibility set to Hidden. The provider for the map is set while its containing parent UserControl is hidden, and the Window holding the UserControl hangs for a long time (longer for lower Internet bandwith) waiting for the Provider setter to execute. When I comment out setting the Provider property, the Window/UserControl loads quickly. I tried to defer setting the provider until the UserControl visibility changes, but the setter is still slow and hangs the application. Is there a way to set the provider on a separate thread or otherwise improve the performance of setting the Provider property?