我正嘗試在使用Backgroundworker的MONO上構建應用程序。當我使用順序方法時,我的應用程序工作正常。基本上,我的應用程序通過點擊按鈕在繪圖區域繪製一些矩形。Gtk.Application.Invoke無法正常工作
我想比較順序,使用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)中拋出一個錯誤;
希望從某一個很快聽到。