De contrôle.Invoke() de l'application se bloque

Je fais preuve d'une animation lors de mon contrôle du chargement des données. Lorsque le thread se termine, je me cache de l'animation et de montrer le contrôle. Donc, je suis l'exécution de ce code à partir d'un thread:

protected void InvokeEnableBackControl()
{
    if (this.InvokeRequired)
    {                
        this.Invoke(new OpHandler(EnableBackControl));
    }
    else
    {
        EnableBackControl();
    }
}

Parfois, lorsque j'exécute ce code, le thread principal est pendu dans le code suivant:

protected virtual void EnableBackControl()
{
    if (overlayAnimation.TargetControl != null)
    {
        overlayAnimation.TargetControl.BringToFront();
    }

    overlayAnimation.SendToBack();
    overlayAnimation.Enabled = false;
    overlayAnimation.Visible = false;                      

}

Je ne suis pas sûr si c'est pendu réglage de la Enable ou Visible de la propriété. Connaissez-vous toutes les circonstances qui peuvent en main de l'application l'appel de ces propriétés à partir d'une Control.Invoke?

Est-il une similitude à la fois, il se bloque?
seulement "parfois". Ennuyeux.
Document de la exact déclaration il se bloque sur, post la trace de la pile.

OriginalL'auteur Daniel Peñalba | 2011-02-25