Вы можете использовать SynchronizationContext.Post
или Dispatcher.Invoke
для маршалинга свойства UIElement.Visible, установленного обратно в поток UI.
Это может быть так просто, как что-то вроде:
App.SynchronizationContext.Post(new SendOrPostCallback((state) =>
{
theControl.Visible = Visibilty.Visible;
}), null);