3

我正在尝试绘制 a public static Bitmap,这是我的图像PictureBox- Control。绘图在同一线程中工作正常,但是当我启动第二个线程时没有任何反应,没有绘制任何内容。有谁知道解决方案?

绘制代码:

Graphics g = Graphics.FromImage(screen);  
g.Clear(Color.Black);Brushes.White);  
g.Dispose();

//编辑:
请原谅。Bitmap 存储在另一个名为 Form1 的类中。线程类是 DrawHelper。为了访问位图,我给 DrawHelper 提供了 Form1 的引用(从 Form1 调用)。
我希望这有帮助。我可以发布所有代码,但是会有很多不必要的代码。

4

1 回答 1

2

您的位图绑定到窗体窗口消息循环。如果您尝试访问类似的内容,则必须使用 Invoke 或 BeginInvoke。

这里:http: //msdn.microsoft.com/en-us/library/ms171728.aspx

编辑。阅读评论后,我可以告诉你你有一个错误,而位图只是没有得到你认为它得到的信息。使用线程本身没有任何关系......

如果你真的需要解决它,你应该创建带有 2 个线程、一个按钮和一个位图的简单原型,然后尝试从线程 #2 中绘制任何东西,看看什么不起作用。如果即使这样也行不通 - 在此处发布代码。(请不要复制/粘贴整个应用程序 - 保持重点)

你也应该把 try/catch 放在里面 using。位图的行为方式可能只是因为使用中存在不可见的异常。

于 2012-06-21T01:31:02.093 回答