Como descartar objetos com métodos assíncronos chamados?

Eu tenho esse objetoPreloadClient que implementaIDisposable, Quero descartá-lo, mas depois que os métodos assíncronos terminam a chamada ... o que não está acontecendo

    private void Preload(SlideHandler slide)
    {
        using(PreloadClient client = new PreloadClient())
        {                 
             client.PreloadCompleted += client_PreloadCompleted;
             client.Preload(slide);
        }
        // Here client is disposed immediately
    }
    private void client_PreloadCompleted(object sender, SlidePreloadCompletedEventArgs e)
    {
     // this is method is called after a while, 
     // but errors are thrown when trying to access object state (fields, properties)
    }

Então, alguma idéia ou solução alternativa ??

questionAnswers(14)

yourAnswerToTheQuestion