public void Dispose() { if (Default != null) { IEvent evt = new BasicEvent(); queue.Add(() => { defaultResource.Unload(evt); defaultResource = null; }); evt.Wait(); } }