回答

2

问题是:我对所有线程都使用相同的System.Drawing.Pen实例。为了解决这个问题,我不得不为每个线程克隆它。

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

即使锁为了解决这个问题

2

简单的回答:不这样做。只能在GUI线程上访问GUI。

+0

它可以在GUI项目发生是至关重要的。请保留您的答案,以便其他用户可以从中受益。 – 2009-12-16 19:43:12

相关问题