WinForm程序 未处理OutOfMemoryException的异常问题【急求】
本帖最后由 junjie94bei 于 2014-01-09 10:40:44 编辑 在程序里写了一段代码是将单据号生成条码,当单据过多3000多条时处理到2000多条就报出这个异常,内存占用超了。
具体代码如下
/// <summary>
/// 根据单据号创建条码
/// </summary>
/// <param name="BillsNo">单据号</param>
/// <returns></returns>
private static string CreateBarcode(string BillsNo)
{
using (BarcodeLib.Barcode b = new BarcodeLib.Barcode())
{
int W = 400;//图片的宽
int H = 100;//图片的高
b.Alignment = BarcodeLib.AlignmentPositions.LEFT;//图片居中
BarcodeLib.TYPE type = BarcodeLib.TYPE.Interleaved2of5;//设置条码格式
byte[] imgBytes = null;
try
{
if (type != BarcodeLib.TYPE.UNSPECIFIED)
{
b.IncludeLabel = false;//条码下面是否显示值
b.RotateFlipType = (RotateFlipType)Enum.Parse(typeof(RotateFlipType), "RotateNoneFlipNone", true);//设置条码的旋转方式
b.LabelPosition = BarcodeLib.LabelPositions.BOTTOMCENTER;//设置把条码搁置那个位置
Image img = b.Encode(type, BillsNo, Color.Black, Color.White, W, H);//生成图片
imgBytes = imageToByteArray(img);
}
return Convert.ToBase64String(imgBytes);
}
catch
{
throw;
}
}
}
/// <summary>
/// 图片转为Byte字节数组
/// </summary>
/// <param name="FilePath">路径</param>
/// <returns>字节数组</returns>
private static byte[] imageToByteArray(Image img)
{
using (Image imgIn = new Bitmap(img))
{
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, ImageFormat.Bmp);
return ms.ToArray();
}
}
}