C# 关于"GDI+ 中发生一般性错误。"的问题

thshanshi thshanshi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在调试程序的时候,不时出现"GDI+ 中发生一般性错误。"这个问题,先把相关代码弄上来。
下面这个程序主要是用来在Treeview控件中根据扩展名获取文件图标,然后生成树形目录,类似于资源管理器的功能
foreach (string ListDetail in ls)//ls为文件名列表
{
if (ListDetail != "")//如果文件名不为空
{
TreeNode tn2 = tn1.Nodes.Add(ListDetail);//建立一个节点

string filetype;//文件扩展名
int exIndex = ListDetail.LastIndexOf('.');
if (exIndex < 0)
{
filetype = null;

}
else
{
filetype = ListDetail.Substring(exIndex, ListDetail.Length - exIndex);//得到文件扩展名
}

Icon icon = GetIconByFileType(filetype, false);//这个函数用来获取文件图标


Image image = icon.ToBitmap();//文件图标保存到image

imageList1.Images.Add(image);//image添加到ImageList控件
tn2.ImageIndex = imageList1.Images.Count - 1;//节点图标索引
tn2.SelectedImageIndex = imageList1.Images.Count - 1;//选定节点的图标索引
image.Dispose();//释放

}
}

上面就是主要代码,当执行到Image image = icon.ToBitmap() 出现这个问题,但是这个问题不是一定会发生的,是时不时会发生,当我点击多个目录节点就可能会出现这个问题,跟节点目录没有关系,跟文件扩展名也没有太大的关系,没有规律性,大家帮忙看下有办法解决吗,可能是哪里的问题,有不明白的地方我再解释一下,谢谢大家啦!
...全文

相关推荐

C#源码图像操作图片缩略图

在多线程环境下,需特别注意GDI+资源的线程安全性问题,推荐采用lock机制或使用独立Graphics上下文隔离操作,防止因并发访问导致的“GDI+ 中发生一般性错误”异常。

zz_ll9023

GDI+中发生一般性错误

#### 一般性错误概述在描述中多次提到“GDI+中发生一般性错误”,这种错误通常指的是在使用GDI+进行绘图或图像处理时出现的问题。

pot2217_331

.net生成缩略图及水印图片时出现GDI+中发生一般性错误解决方法

然而,开发者在使用GDI+处理图像时可能会遇到“GDI+中发生一般性错误”的问题,这通常是由于资源管理不当导致的。本文将深入探讨这个问题,并提供一种解决方法。

weixin_38720390

C# GDI+打印复杂表格

**错误处理**:在编程过程中,要考虑到可能出现的异常情况,如打印机未连接或无纸等问题,确保程序的健壮性。通过上述步骤,我们可以使用C# GDI+有效地打印出复杂表格。

kovinli

为什么你的C#图片处理代码突然崩溃?深入解析GDI+锁机制与内存流陷阱

本文深入解析了C#图片处理中常见的“GDI+一般性错误”崩溃问题。核心原因在于GDI+锁机制与内存流生命周期管理不当,特别是使用Image.Save方法时,若关联的MemoryStream被提前关闭或释放,便会触发异常。文章通过剖析Image.FromStream的内部机制,揭示了流依赖陷阱,并提供了创建独立Bitmap副本等根治方案与最佳实践,帮助开发者构建稳定可靠的图像处理代码。

人行有师
评论 6
收藏 已收藏
分享
返回顶部
thshanshi
.NET社区 62,271 成员 668,968 内容