Répondre

2

Le problème était: J'utilisais la même instance System.Drawing.Pen pour tous les threads. J'ai dû le cloner pour chaque thread afin de résoudre le problème.

var pens = new Pen[0]; 
lock (this._pens) 
{ 
    pens = (Pen[])this._pens.Select(a => (Pen) a.Clone()).ToArray(); 
} 

Même le verrou est essentiel afin de résoudre ce problème

2

Réponse simple: ne faites pas cela. Accédez uniquement à l'interface graphique sur le thread graphique.

+0

Il peut se produire dans un projet GUI. Veuillez garder votre réponse afin que les autres utilisateurs puissent en profiter. –