首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WinForm程序 未处理OutOfMemoryException的错误有关问题【急求】

2014-06-04 
WinForm程序 未处理OutOfMemoryException的异常问题【急求】本帖最后由 junjie94bei 于 2014-01-09 10:40:44

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();
                }
            }


        }


下面是通过VS的分析工具分析出来的截图
WinForm程序 未处理OutOfMemoryException的错误有关问题【急求】
WinForm程序 未处理OutOfMemoryException的错误有关问题【急求】
WinForm程序 未处理OutOfMemoryException的错误有关问题【急求】
请求各位大大帮忙分析一下是什么原因。
找到问题就好,你真牛。放到DataSet里。。。。。不释放。。。

热点排行