我正在尝试使用 Backgroundworker 在 MONO 上构建应用程序。当我使用顺序方法时,我的应用程序运行良好。基本上,我的应用程序在单击按钮时在绘图区域上绘制一些矩形。
我正在尝试使用 Backgroundworker 和其他方法比较顺序执行时间的差异。
我在使用后台工作者时遇到问题,请查看以下代码,
static void DoWork (object sender, DoWorkEventArgs e)
{
Context ct = (Context)e.Argument;
house.DrawHouse rect = new house.DrawHouse ();
PointD p1, p2, p3, p4;
p1 = new PointD (55, 250);
p2 = new PointD (65, 250);
p3 = new PointD (65, 90);
p4 = new PointD (55, 90);
Gtk.Application.Invoke (delegate {
ct.MoveTo (p1);
ct.LineTo (p2);
ct.LineTo (p3);
ct.LineTo (p4);
ct.LineTo (p1);
ct.ClosePath ();
ct.Color = new Color (0, 0, 0);
ct.FillPreserve ();
ct.Color = new Color (255, 255, 255);
ct.Stroke ();
});
}
}
在上面的代码中,工作线程正在创建矩形并让 GUI 线程打印它。但它在ct.MoveTo (p1) 中引发错误;
希望很快能听到一些人的消息。