我正在尝试绘制public static Bitmap
,即PictureBox
- Control
的图像。绘图在同一个线程中工作正常,但是当我启动第二个线程时没有任何事情发生,什么也没有画出来。有谁知道解决方案?
绘制代码:
Graphics g = Graphics.FromImage(screen);
g.Clear(Color.Black);Brushes.White);
g.Dispose();
//编辑:
请原谅我。位图存储在另一个名为Form1的类中。线程类是DrawHelper。为了获得对Bitmap的访问,我给了DrawHelper Form1的引用(从Form1调用)
我希望这有帮助。我可以发布所有代码,但会有太多不必要的代码。
答案 0 :(得分:2)
您的位图绑定到表单窗口消息循环。如果您尝试访问类似的任何内容,则必须使用Invoke或BeginInvoke。
此处:http://msdn.microsoft.com/en-us/library/ms171728.aspx
编辑。阅读评论后,我可以告诉您,您有一个错误,位图只是没有得到您认为它获得的信息。与线程本身无关......
如果你真的需要解决它,你应该用2个线程创建一个简单的原型,一个按钮和一个位图,然后尝试从线程#2中绘制任何东西,看看什么不起作用。即使这不会工作 - 在这里发布代码。 (请不要复制/粘贴整个应用程序 - 保持一定程度)
你应该把try / catch放在里面使用。位图的行为可能与它的行为方式完全相同,因为在使用中存在不可见的异常。