【发布时间】:2009-12-22 20:47:13
【问题描述】:
我有一些代码可以做这样的事情(不相关的部分被剪掉了):
void foo(Bitmap bmp1, Bitmap bmp2)
{
Bitmap bmp3;
if(something)
bmp3 = new Bitmap(bmp1.Width, bmp1.Height + bmp2.Height);
else
bmp3 = new Bitmap(bmp1.Width, 18000);
(more stuff here that runs fine)
}
任何人大部分时间都运行良好。首先。随着项目的继续,它开始在新的位图行上失败。它给出的错误是:“ArgumentException 未处理。参数无效。”没有提到它有问题的参数或任何东西。我难住了。以下是我确定的:
- bmp1 和 bmp2 从未为空 何时引发此错误。
- if 语句的存在 从来没有改变过;它死了 经常没有。
- 构造函数的两个示例都使用 已抛出此错误。
我很想说这是一个内存错误,但它没有提到任何类似的东西。前十几次发生这种情况,高度总计超过 18000 (因此上面的神奇数字)。考虑到这是对我们系统的某种软屏障,我们只是将图像限制在该高度,让异常在一段时间后消失。
对于一些示例数据,我现在正在查看的异常是 bmp1.Width 为 2550,bmp1.Height 为 6135,bmp2.Height 为 6285。
有人有什么想法吗?
【问题讨论】: