winfrom程序做的多文件上传到服务器,上传成功后读取本地刚上传过的xml文件获取节点属性值加到数据库,多次执行这个操作的话报资源被占用的错误,怎么确定谁占用的资源以及资源被占用的解决方案。
自己解决了,谢谢大家。
1.资源释放了没
2.操作是否过于频繁
你说的资源释放是读取xml还是上传文件?
@Like金: 读取
@codingHeart: using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
XmlDocument xx = new XmlDocument();
xx.Load(path);
XmlNodeList xxList = xx.GetElementsByTagName("ComposeGroup");
foreach (XmlNode xxNode in xxList)
{
composeGroup_Name = xxNode.Attributes["Name"].Value;//获取ComposeGroup节点下的Name属性值
}
xx.RemoveAll();
xx = null;
}
我是这样写的 貌似不管用
@Like金: 调试过吗,异常的地方在哪
@codingHeart: 异常在文件上传的时候根据文件路径获取文件的byte[]方法里
@codingHeart: mlDocument xx = new XmlDocument();
xx.Load(path);
XmlNodeList xxList = xx.GetElementsByTagName("ComposeGroup");
foreach (XmlNode xxNode in xxList)
{
composeGroup_Name = xxNode.Attributes["Name"].Value;//获取ComposeGroup节点下的Name属性值
}
xx.RemoveAll();
xx = null;
这段代码 外面加using(){}该怎么写啊?我写的好像不对
@Like金: 这段代码都可以不用using
@Like金: xmldocument是引用类型,它的内存分配在托管堆上,属于托管资源,会由gc自动回收垃圾并释放资源。不需要加using去释放资源。FileSteam是属于非托管资源,需要手动利用释放资源或者使用using实现自动释放资源
@~扎克伯格: 我调试着走就不报错,难道是因为操作太快了?对于操作太快该怎么处理下?
@Like金:问题是,你的异常在文件上传那
你可以试试线程
我知道线程,但是不会啊。