Using a background thread to set Disposed flag
Using SingleInstance to register providers